{"id":13622395,"url":"https://github.com/zhangfei19841004/zmock","last_synced_at":"2025-04-15T06:30:25.451Z","repository":{"id":50751947,"uuid":"94950952","full_name":"zhangfei19841004/zmock","owner":"zhangfei19841004","description":"zmock--http接口的mock平台","archived":false,"fork":false,"pushed_at":"2020-07-24T01:44:38.000Z","size":2197,"stargazers_count":104,"open_issues_count":0,"forks_count":73,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-08T09:43:21.831Z","etag":null,"topics":["http","mock","mock-server","test","test-automation","zmock","zson"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhangfei19841004.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-21T01:41:07.000Z","updated_at":"2024-08-23T12:14:08.000Z","dependencies_parsed_at":"2022-09-05T20:11:20.027Z","dependency_job_id":null,"html_url":"https://github.com/zhangfei19841004/zmock","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhangfei19841004%2Fzmock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhangfei19841004%2Fzmock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhangfei19841004%2Fzmock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhangfei19841004%2Fzmock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhangfei19841004","download_url":"https://codeload.github.com/zhangfei19841004/zmock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249020568,"owners_count":21199581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["http","mock","mock-server","test","test-automation","zmock","zson"],"created_at":"2024-08-01T21:01:18.586Z","updated_at":"2025-04-15T06:30:22.185Z","avatar_url":"https://github.com/zhangfei19841004.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"zmock功能\n====\n\n模拟出一个不存在的http接口，根据请求参数的不同返回对应的数据。\n\nzmock应用场景\n====\n\n1.  在接口文档写好后，就可以mock出一个接口，以便于客户端开发，且测试人员也可以开始写测试用例。mock出来的接口也相当于一种契约，服务端与客户端都必须遵守这个mock出来的契约。\n2.  当系统中有第三方接口，在做性能测试时，可以mock第三方接口，作为性能测试的档板。\n3.  其它。\n\nzmock介绍\n====\n\n1.  开发语言及框架：java，spring，easyui\n2.  web容器：tomcat\n3.  部署方式：\n * 将打包好的zmock.war更名为ROOT.war\n * 将ROOT.war放在tomcat的webapps目录下面\n * 启动tomcat\n4.  设置\n  * 打开http://ip:port/zmock/index?role=whosyourdaddy\n  ![](https://testerhome.com/uploads/photo/2017/65fb7aa1-0baf-45ab-8251-cf939d193163.png!large)\n  * 填写mock数据保存目录，作为一个workspace。在https://github.com/zhangfei19841004/zmock 中有一个data目录，建议将mock数据保存目录指向这个data目录，里面有已经写好的mock接口，可以作为参考。\n  * 一般情况下用http://ip:port/zmock/index访问即可\n\nzmock平台使用说明\n====\n\u003e  接口文档：\n请求链接：/api/info/v1\n请求方法：post\n请求参数示例：{\"name\":\"zhang\",\"age\":30}\n请求参数说明：\n\n| 参数名 | 参数类型 | 是否必需 | 示例值 |\n| --------- | ------------ | ------------ | --------- |\n| name   | string      | 是            | zhang  |\n| age      | int           | 是            | 30        |\n\n响应说明：\n  1. 当name的值为空或者age的值小于等于0时，响应：\n{\"retCode\":\"300\",\"retMsg\":\"参数不正确\"}\n  2.  当name的值为zhan时，响应:\n{\"retCode\":\"301\",\"retMsg\":\"数据不存在\"}\n  3.  当name值为zhang且age的值为18时，响应：\n{\"retCode\":\"301\",\"retMsg\":\"数据不存在\"}\n  4.  其它情况下，响应：\n{\"retCode\":\"200\",\"retMsg\":\"ok.\",\"data\":{}}\n\n***\n\n\u003e  以上是一份简单的接口文档，公司不同，文档的要求不同，但我相信大家都应该能看懂这份文档，现在，我们根据这份文档来mock一个http接口出来：\n  1. 点击左上角的+号：\n  \n  ![](https://testerhome.com/uploads/photo/2017/a33a5327-5cd6-4595-b07b-5fc74eb66800.png!large)\n  \n  2. 确定后，在菜单中选择或输入测试DEMO，在mock请求URL中填写：\n  \n  ![](https://testerhome.com/uploads/photo/2017/22f6c283-e3dc-47b9-932a-36abaad5cedd.png!large)\n  \n  3. mock请求方法选择POST:\n  \n  ![](https://testerhome.com/uploads/photo/2017/08c0c485-4c63-401a-81a0-6962f377a3a1.png!large)\n  \n  4. 在mock请求参数模板中：\n  \n  ![](https://testerhome.com/uploads/photo/2017/c3859752-e489-4b0b-be04-9f4816388fe0.png!large)\n  \n  5. 在mock规则定义中点击新增：\n  \n  ![](https://testerhome.com/uploads/photo/2017/36cb97ff-d047-4d77-8deb-b05c445d9b13.png!large)\n  \n  6. 再增加一条规则：\n  \n  ![](https://testerhome.com/uploads/photo/2017/a5ee19b8-ea28-4e82-ab31-139f1460e602.png!large)\n  \n  7. 最后一条规则：\n  \n  ![](https://testerhome.com/uploads/photo/2017/7b49cded-db16-43cc-a756-9321023373df.png!large)\n  \n  8. 保存后，mock就完成了\n\n***\n\n\u003e  mock完成后，我们来测试一下这个http接口：\n\n![](https://testerhome.com/uploads/photo/2017/2b9e84f0-4f98-4bf8-aa2b-10cce7e26c24.png!large)\n\n![](https://testerhome.com/uploads/photo/2017/ddebdc65-a7da-4483-8965-67d6279b4055.png!large)\n\n![](https://testerhome.com/uploads/photo/2017/904419a6-bbb0-452b-bdd5-be840b28cd2f.png!large)\n\n![](https://testerhome.com/uploads/photo/2017/81f9c94b-fea0-4834-80bd-f859b5840102.png!large)\n\nzmock的特点\n====\n1.  请求参数模板的定义。根据请求参数模板，来判断请求参数是否正确。\nmock请求参数模板说明:\n  * .*表示请求参数为任意字符串，用于POST BODY\n  * 如username=\u0026password=表示POST表单提交或GET请求\n  * 如{\"username\":\"\",\"password\":\"\"}表示POST BODY为JSON串\n2.  mock规则利用表达示来定义。比如/name,/age，这是json路径，具体的请参考：https://github.com/zhangfei19841004/zson\n表达示所支持的比较符有：\n==\t\t!=\t\t\u003e\t\t\u003e=\t\t\u003c\t\t\u003c=\t\tin\t\tcontains\n表达示方便扩展，如有需要，自行扩展即可。\n支持的连接符有：and\t\tor\t\t(),其中()的优先级最高，支持括号里套括号。\n3.  采用文件异步保存数据的方式，且数据都放在内存里，保证接口的响应速度。\n4.  zmock脚本说明\n  * zmock脚本采用jexl表达示，具体请参考:[jexl官网](http://commons.apache.org/proper/commons-jexl/)\n  * 内置对象有:headers,params,response\n\nzmock地址\n====\n* github:  https://github.com/zhangfei19841004/zmock\n* 体验地址：http://101.200.48.144:8080/zmock/index\n\n作者联系方式\n====\n* QQ：408129370\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhangfei19841004%2Fzmock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhangfei19841004%2Fzmock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhangfei19841004%2Fzmock/lists"}