一文3000字从0到1实现基于requests框架接口自动化测试项目实战(建议收藏)

01、requests的安装

windows下执行如下命令

pipinstallrequests-ihttp://pypi.douban.com/simple/--trust-host pypi.douban.com

mac终端下执行如下命令

python3-mpipinstallrequests-ihttp://pypi.douban.com/simple/--trust-host pypi.douban.com

02、自动化requests模块的常用方法

2.1get请求实战

 
  1. # !/usr/bin python3                

  2. # encoding: utf-8 -*-              

  3. # @author: 沙陌 微信:Matongxue_2

  4. # @Time:2021/3/25 9:54 

  5. # @Copyright:北京码同学网络科技有限公司

  6. import  requests 

  7. host='http://10.0.0.18:8080'

  8. def get():

  9.   """

  10. get接口请求

  11. :return:

  12. """

  13.   url =host+'/pinter/com/getSku' #接口地址

  14.   params={

  15.     'id':1

  16. }

  17.   resp = requests.get(url,params=params)

  18.   status_code=resp.status_code #获取响应状态码

  19.   print('响应状态码:{}'.format(status_code))

  20.   text=resp.text #获取响应内容,结果类型是字符串

  21.   print('响应内容:{}'.format(text))

  22.   json=resp.json() #获取响应内容,结果是字典类型

  23.   print('响应内容:{}'.format(json))

  24.   resp_headers=resp.headers #获取响应headers

  25.   print('响应header:{}'.format(resp_headers))

  26. if__name__=='__main__':

  27.  get()

结果如下

 
  1. D:\Python\Python36\python.exe D:/pycharmprojects/first/requetsstudy/pinter.py

  2. 响应状态码:200 

  3. 响应内容:{"code":"0","message":"success","data":{"skuId":1,"skuName":"ptest-1","price":"645","stock":709,"brand":"testfan"}}

  4. <class'dict'>

  5. 响应内容:{'code':'0','message':'success','data':{'skuId':1,'skuName':'ptest-1','price':'645','stock':709,'brand':'testfan'}}

  6. 响应header:{'Content-Type':'application/json;charset=UTF-8','Transfer-Encoding':'chunked','Date':'Fri,12Mar202122:13:49GMT','Keep-Alive':

  7. 'timeout=20','Connection':'keep-alive'}

  8. Process finished with exit code 0

上述代码中请求发起后得到一个响应对象变量resp,那么resp对象的常用方法如下

2.2post请求实战

post请求的参数格式通常有多种,我们依次学习

第一种表单形式的参数

  1. ```python

  2. importrequests 

  3. host='http://10.0.0.18:8080'

  4. defpost():"""post表单:return:"""url=host+'/pinter/com/login'#表单参数data={

  5. 'userName':'沙陌','password':'123456'}resp=requests.post(url=url,data=data)status_code=

  6. resp.status_code#获取响应状态码print('响应状态码:{}'.format(status_code))text=resp.text#获取响应内容,结果类型是字符串print('响应内容:{}'.format(text))json=resp.json()#获取响应内容,结果是字典类型print('响应内容:{}'.format(json))resp_headers=resp.headers#获取响应headers 

  7. print('响应header:{}'.format(resp_headers))```

第二种json格式参数

  1. import requests

  2. host='http://10.0.0.18:8080'

  3. def post_json():

  4.  """

  5. postjson

  6. :return:

  7. """

  8.   url =host +'/pinter/com/register'

  9.   #header里定义参数类型

  10.   headers={

  11.     'Content-Type':'application/json'

  12. }

  13.   #json参数

  14.   json={

  15.     "userName":"沙陌",

  16.     "password":"1234",

  17.     "gender":1,

  18.     "phoneNum":"110",

  19.     "email":"beihe@163.com",

  20.     "address":"Beijing"

  21. }

  22.   resp=requests.post(url=url,json=json)

  23.   status_code=resp.status_code #获取响应状态码

  24.   print('响应状态码:{}'.format(status_code))

  25.   text=resp.text #获取响应内容,结果类型是字符串

  26.   print('响应内容:{}'.format(text))

  27.   json=resp.json() #获取响应内容,结果是字典类型

  28.   print('响应内容:{}'.format(json))

  29.   resp_headers=resp.headers #获取响应headers

  30.   print('响应header:{}'.format(resp_headers))

2.3put接口实战

 
  1. import requests

  2. host='http://10.0.0.18:8080'

  3. def put():

  4.  """

  5. put 清酒

  6. :return:

  7. """

  8.   url = host+'/pinter/com/phone' #接口地址

  9.   #参数

  10.   json={

  11.     "brand":"Huawei",

  12.     "color":"yellow",

  13.     "memorySize":"64G",

  14.     "cpuCore":"8核",

  15.     "price":"8848",

  16.     "desc":"全新上市"

  17. }

  18.   resp=requests.put(url=url,json=json)

  19.   status_code=resp.status_code #获取响应状态码

  20.   print('响应状态码:{}'.format(status_code))

  21.   text=resp.text #获取响应内容,结果类型是字符串

  22.   print('响应内容:{}'.format(text))

  23.   json=resp.json() #获取响应内容,结果是字典类型

  24.   print('响应内容:{}'.format(json))

  25.   resp_headers=resp.headers #获取响应headers

  26.   print('响应header:{}'.format(resp_headers))

2.4delete请求

2.5request.session.request用法

可以自动管理cookie,比如如下需要采用cookie认证的接口

结果如下:

 
  1. D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter.py 响应状态码:200 

  2. 响应内容:{"code":"0","message":"success","data":"$22,378,198"}

  3. Process finished with exit code 0

2.6token关联的接口如何做呢?

对于需要token关联的接口来说,需要从登录接口的返回值中提取token信息,并传递给需要token的接口

结果如下:

 
  1. D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter1.py

  2. 响应状态码:200 

  3. 响应内容:{"code":"0","message":"success","data":"$74,780,457"}

  4. Process finished with exit code 0

总结一下:

requests库的请求方法里参数众多,所以简单划分一下,查询参数就用params=params 

表单参数就用data=data 

json参数就用json=json 

请求头信息header就用headers=headers 

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/549044.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“灯塔”——一个让人爱不释手的前端监测工具

引言 "灯塔"&#xff08;fee&#xff09;作为一个前端监控系统&#xff0c;通常具备捕获浏览器端错误、性能监控、用户行为跟踪等功能。它的主要目的是帮助开发者了解他们的网站或应用在用户端的表现&#xff0c;以及时发现并解决问题。下面是关于这种系统的一些关键…

ODIN靶机渗透vulnhub

使用kali的netdiscover -r 192.168.2.0或arp-scan -l命令来查看当前局域网里正在运行的主机ip地址 这里的这个192.168.2.46就是靶机的ip地址 然后使用nmap工具进行扫描&#xff0c;发现开放了一个80端口&#xff0c;http协议&#xff0c;然后进行探测http 这里我使用的工具是…

嵌入式学习之Linux系统编程篇笔记——系统编程初探

配套视频学习链接&#xff1a;https://www.bilibili.com/video/BV1zV411e7Cy?p2&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux系统编程的基本认识 什么是Linux系统编程? 什么是系统编程 系统编程的作用 怎么学习Linux系统编程? Linux系统编程基本程序框…

YOLOv9改进策略:注意力机制 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a;用于微小目标检测的上下文增强和特征细化网络ContextAggregation&#xff0c;助力小目标检测 yolov9-c-ContextAggregation summary: 971 layers, 51002153 parameters, 51002121 gradients, 238.9 GFLOPs 改…

系统渐渐沦为“屎山”,这就是真相!

分享是最有效的学习方式。 博客&#xff1a;https://blog.ktdaddy.com/ 背景 小猫维护现有的系统也有一段时间了&#xff0c;踩坑也不少&#xff0c;事故不少。感兴趣的小伙伴可以了解一下&#xff0c;往期的小猫踩坑记合集。 这天&#xff0c;小猫找到了商城系统的第一任开发…

HTML5语义化元素

在HTML5之前&#xff0c;网站的分布层级有哪些呢&#xff1f; nav&#xff0c;header&#xff0c;main&#xff0c;footer 这样做有一个弊端 我们往往过多的使用div&#xff0c;通过ID或class来区分元素 对于浏览器来说这些元素不够语义化 对于我来说搜索引擎来说&#xff0c;不…

CentOS 7 编译安装 Nginx

CentOS 7 编译安装 Nginx 背景下载 Nginx 源码包安装依赖包编译添加环境变量添加守护查考文献 背景 一开始使用 docker 搭建了一个 web 服务器&#xff0c;但是由于 docker 不太方便的部署 TLS 证书&#xff0c;故使用 Nginx 做反向代理&#xff0c;实现 https 连接。 下载 N…

【Chapter1】操作系统概述,计算机操作系统教程,第四版,左万利,王英

文章目录 一、操作系统的基本概念1.1操作系统的层次结构1.2操作系统的运行视图1.3操作系统的概念(定义)1.4操作系统的功能和目标1.4.1操作系统的功能和目标——作为系统资源的管理者1.4.2操作系统的功能和目标——向上层提供方便易用的服务1.4.2.1GUI&#xff1a;图形化用户接口…

Excel之数据透视表

数据透视&#xff1a;逻辑理解与制作步骤 一、创建数据透视表 1、创建数据透视表&#xff1a;每列必须有表头 &#xff08;1&#xff09;选择要创建数据透视表的数据------插入----选择数据透视表 &#xff08;2&#xff09;选择现有工作表然后点击目标表选择合适的位置插入…

FRM模型十八:Merton模型

文章目录 莫顿模型介绍&#xff08;Merton&#xff09;假设表达式信用利差及违约距离 代码实现 莫顿模型介绍&#xff08;Merton&#xff09; 莫顿模型是评估信用风险的一大重要理论。莫顿模型认为&#xff0c;债券是否违约这一行为归根到底是一种选择。当违约的好处>不违约…

Spring-3

目录 Spring AOP和AspectJ AOP 在Spring AOP 中&#xff0c;关注点和横切关注的区别 Spring 框架中的单例 Bean 是线程安全的吗 Spring 是怎么解决循环依赖的&#xff1f; 事务隔离级别 事务的传播级别 Spring 事务实现方式 Spring框架的事务管理有哪些优点 事务注解的…

GitLab/Github从头开始配置秘钥

1、下载git安装包 CNPM Binaries Mirrorhttps://registry.npmmirror.com/binary.html?pathgit-for-windows/ 拉到页面最底部选择 点进文件夹下载32位或者64位的版本&#xff0c;我的是64位就选择64的版本进行安装 2、傻瓜式安装 3、在相应的文件夹右键选择 UserName为你的用…