1、安装mock

方法一:pip安装

命令行直接输入:pip install mock

方法二:官网下载mock安装包安装

下载安装包后,解压,命令行进入解压目录,执行python setup.py install

2、mock模拟返回值

1)不封装,mock模拟返回值

  1. # encoding:utf-8
  2. from mock import mock
  3. import unittest
  4. from base.requestsDemo import SendMain
  5.  
  6. # 创建测试类,继承unittest.TestCase
  7. class MockTest(unittest.TestCase):
  8. def setUp(self):
  9. self.run = SendMain()
  10.  
  11. def test_1(self):
  12. # 定义请求的post数据并返回
  13. postData = {'username': 'wangling', 'password': ''}
  14. # 定义请求的post url
  15. postUrl = 'http://127.0.0.1:8000/postDataHandle/'
  16. # 定义请求的响应结果
  17. respnse_data = postData
  18. # 响应数据
  19. mockData = mock.Mock(return_value=respnse_data)
  20. # mockData是send_main方法的模拟值
  21. self.run.send_main = mockData
  22. res = self.run.send_main(postUrl, 'POST', postData)
  23. print res
  24.  
  25. def test_2(self):
  26. getData = {'username': 'xiaohua', 'mobile': '', 'data': 'haha'}
  27. getUrl = 'http://127.0.0.1:8000/getDataHandle'
  28. mockData = mock.Mock(return_value=getData)
  29. self.run.send_main = mockData
  30. res = self.run.send_main(getUrl, 'GET', getData)
  31. print res
  32.  
  33. if __name__ == '__main__':
  34. unittest.main()

2)封装,mock模拟返回值

可以将mock模拟返回结果封装一下,使代码重用性更高,具体如下:

  1. # coding:utf-8
  2. from mock import mock
  3.  
  4. # 模拟mock封装
  5. def mock_test(mock_method,url, method,response_data,request_data=None):
  6. mock_method = mock.Mock(return_value=response_data)
  7. res = mock_method(url, method, request_data)
  8. return res

调用如下:

  1. # encoding:utf-8
  2. import unittest
  3. from base.requestsDemo import SendMain
  4. from base.mockdemoRe import mock_test
  5.  
  6. # 创建测试类,继承unittest.TestCase
  7. class MockTest(unittest.TestCase):
  8. def setUp(self):
  9. self.run = SendMain()
  10.  
  11. def test_2(self):
  12. getData = {'username': 'xiaohua', 'mobile': '', 'data': 'haha'}
  13. getUrl = 'http://127.0.0.1:8000/getDataHandle'
  14. respnseDate = getData
  15. mock_test(self.run.send_main,getUrl,'GET',respnseDate,getData)
  16. res = self.run.send_main(getUrl, 'GET', getData)
  17. print res
  18.  
  19. if __name__ == '__main__':
  20. unittest.main()

10-Mock模拟接口返回数据的更多相关文章

  1. mock模拟接口返回数据

    mock,是python中模拟接口返回数据 1.安装 pip install mock import unittest from mock import Mock def add(a,b): pass ...

  2. vue项目中使用mockjs模拟接口返回数据

    Mock.js 是一个模拟数据生成器,利用它,可以拦截ajax请求,直接模拟返回数据,这样前后端只要约定好数据格式,前端就不需要依赖后端的接口,可以直接使用模拟的数据了. 网上介绍mock的教程也较多 ...

  3. python接口自动化26-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)

    前言 参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了. 最常见的案例就是网站的登录案例,很多网站的登录并不仅 ...

  4. 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)

    酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)   最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地 ...

  5. python3乱码问题:接口返回数据中文乱码问题解决

    昨天测试接口出现有一个接口中文乱码问题,现象: 1 浏览器请求返回显示正常 2 用代码请求接口返回数据中文显示乱码 3 使用的python3,python3默认unicode编码,中文都是可以正常显示 ...

  6. carry-检查数据接口返回数据合法性

    问题背景: 在测试&部署监控过程中,我们常常会遇到外部接口返回数据不靠谱的时候.最常见的场合是从某个http获取如json和xml等结构化的结果,进行解析并处理,在这时候出现以下这几种常见类型 ...

  7. 通过Fiddler肆意修改接口返回数据进行测试

    [本文出自天外归云的博客园] 方法介绍与比对 在测试的过程中,有的需求是这样的,它需要你修改接口返回的数据,从而检查在客户端手机app内是否显示正确,这也算是一种接口容错测试,接口容错测试属于app性 ...

  8. POST请求成功,但接口返回数据不正确

    事件:使用Jmeter做APP的搜索接口测试,请求成功了,但无论keyword是什么“内容”(这里的内容是带引号的哦),接口返回的内容都是:未匹配到搜索结果 排查问题: keyword=“世界” st ...

  9. Mbp通过筛选器和中间件实现异常,日志,事务及接口返回数据格式化aop处理.

    Mbp应用服务层的AOP实现 实现方法:asp.net core mvc 筛选器 + 中间件 日志,事务,和接口返回结果统一格式化采用操作筛选器,而异常处理采用中间件来处理. 最开始,我是打算用aut ...

随机推荐

  1. Python设计模式 - UML - 组合结构图(Composite Structure Diagram)

    简介 组合结构图用来显示组合结构或部分系统的内部构造,包括类.接口.包.组件.端口和连接器等元素,是UML2.0的新增图. 组合结构图侧重复合元素的方式展示系统内部结构,包括与其他系统的交互接口和通信 ...

  2. mysql concat筛选查询重复数据

    SELECT * from (SELECT *,concat(field0,field1)as c from tableName) tt GROUP BY c HAVING count(c) > ...

  3. Ubuntu 增加swap空间大小

    1. create a 1G file for the swap. sudo fallocate -l 1G /swapfile we can verify that the correct amou ...

  4. Harry Potter and J.K.Rowling(半平面交+圆和矩形交)

    Harry Potter and J.K.Rowling http://acm.hdu.edu.cn/showproblem.php?pid=3982 Time Limit: 2000/1000 MS ...

  5. 18-matlab知识点复习一

    clc; clear; %% 输出 clc, clear; fprintf('%.19f', pi); fprintf('%d', 110); inf pi disp([1,3,5]) disp('a ...

  6. MySQL8.0安装

    背景 MySQl 8.0 出来已经有段时间了,据说性能有很大提高,在网上看过很多安装教程,大同小异, 在这里亲身实战实战下MySQL8.0在Windows10系统下的安装,以下为详细的安装步骤. 1. ...

  7. 泡泡堂BNB[ZJOI2008]

    --BZOJ1034 Description 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡 ...

  8. 最大流当前弧优化Dinic分层模板

    最大流模板: 普通最大流 无向图限制:将无向图的边拆成2条方向相反的有向边 顶点有流量限制:拆成2个点,连接一条容量为点容量限制的边 无源汇点有最小流限制的最大流:理解为水管流量形成循环 有源汇点的最 ...

  9. grunt压缩js代码

    安装node.js的环境和grunt插件在上一篇已经将过,点击这里跳到上一篇 所以我们直接从压缩插件的安装开始讲 起 1.安装uglify插件 目录结构如下: 命令行:npm install grun ...

  10. hdfs数据采集场景示意图