2.1 原理
在接口没有开发完成的时候使用的模拟数据。只要有接口文档,知道数据返回的格式,就可以通过mock去模拟一个请求返回的数据
就和fiddler里面的AutoResponder差不多,拦截到相应请求,然后返回对应响应。
通过模拟返回值来实现,不管传进来的是啥。
# coding=utf-8import requestsurl = "http://www.baidu.com/login"data = {"username": "zz","password": "1111"}def post_request(url, data):res = requests.post(url, data).json()return res
2.2 unittest中使用mock
# coding=utf-8import mockimport requestsimport unittesturl = "http://www.baidu.com/login"data = {"username": "zz","password": "1111"}def post_request(url, data):res = requests.post(url, data).json()return resclass TestLogin(unittest.TestCase):def setUp(self):print("case开始执行")def tearDown(self):print("case执行结束")def test_01(self):data = {"username": "11111111"}success_test = mock.Mock(return_value=data)post_request = success_testres = post_requestself.assertEqual("1112222", res())if __name__ == "__main__":unittest.main()
2.3 moco runner
就一个小工具。。。
到moco-runner-0.12.0-standalone.jar这个文件所在文件夹,启动MockRunner服务
java -jar moco-runner-0.12.0-standalone.jar start -p 8801 -c config.json
config.json文件,如果url是/login的时候就返回text是zzy
[{"request":{"url": "/login"},"response":{"text": "zzy"}},{"request":{#可以设定请求方法"method": "post""url": "/login"},"response":{#返回字典"json": {"user": "111","password": "222","message": "this is text"}}}]
