关闭

requests-mock:轻松模拟HTTP请求的利器

发表于:2023-11-16 09:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:测试安静    来源:51Testing软件测试网原创

  前言
  在日常测试过程中或者研发开发过程中,目前接口暂时没有开发完成,测试人员又要提前介入接口测试中,测试人员不仅仅只是简单的编写测试用例,也可以通过一些mock的方法进行来提前根据接口测试的情况进行模拟返回接口的信息,进行模拟接口各种场景的异常。
  requests-mock
  requests-mock属于一个python库,大多数情况用于单元测试中模拟HTTP请求的响应,它可以进行来模拟接口的各种场景,就像真正的服务器一样。
  安装
  pip install requests-mock
  模拟post请求
  小编这里先自己随便写一个url地址,然后自己在模拟一个参数数据内容,已经请求成功后返回的状态码,然后通过requests进行根据模拟的内容进行请求,这样就能查看我们返回的数据是否正确了。
  # coding:utf-8
  import requests
  import requests_mock
  def test_01():
      with requests_mock.Mocker() as m:
          # 模拟post请求内容,返回的json格式,返回码为200
          m.post('https://www.anjing.com',json={'name':'anjing'},status_code=200)
          # 根据模拟的请求进行通过requests进行发送模拟信息,查看返回结果内容
          r = requests.post('https://www.anjing.com',json={'name':'anjing'})
          print(r.text)
          assert r.status_code == 200
          assert r.json()['name']=='anjing'
  通过执行代码,可以发现我们已经模拟请求成功了。
  模拟动态post请求
  上面介绍的是参数都写死了,小编这里模拟一个动态的数据,自己输入内容,然后后续进行自己校验内容,这里需要自己加入一个函数,将我们动态数据加入到函数中,然后进行返回。
  # coding:utf-8
  import requests
  import requests_mock
  def test_01():
      with requests_mock.Mocker() as m:
          # 模拟post请求内容,返回的json格式,返回码为200
          def echo_response(request,context):
              data = request.json()
              return {'json':data,'status_code': 200}
          m.post('https://www.anjing.com',json=echo_response)
          data = {
              'name':'anjing'
          }
          r = requests.post('https://www.anjing.com', json=data)
          print(r.text)
          assert r.status_code == 200
          assert r.json()['json']['name']=='anjing'
  通过执行代码情况,可以看出,动态数据请求正确。
本文节选自第七十四期《51测试天地》
requests-mock的简单介绍》一文
想继续阅读全文或查看更多精彩内容,请点击下载:
  版权声明:本文出自《51测试天地》第七十四期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号