大家好,欢迎来到IT知识分享网。
一、Python 之 request
主要方法解析 requests 是 python 实现的最简单易用的 HTTP 库,requests 库7 个主要方法:
举例:普通接口测试的接口之间没有关联性,所以直接定义变量去发起get、post 请求即可。
其中 POST 的请求常用的分为 json 和 formdata,两种方式请求的参数方式如截图所示;需要鉴权的,需要导入 auth 包,然后跟在请求方法后面。
1.url: 请求地址
2.data:字典,字节序列或文件对象,作为 Request 的内容
3.json: JSON 格式的数据,作为 Request 的内容
4.headers: 字典, HTTP 定制头
5.cookie: 字典或 CooKiJar, Request 中的 cookie
6.auth: 元祖,支持 HTTP 认证功能
7.files: 字典类型,传输文件
8.timeout: 设定超时时间,秒为单位
9.proxies: 字典类型,设定访问代理服务器,可以增加登录认证
10.allow_redirects: True/False,默认为 True,重定向开关
11.stream: True/False,默认为 True,获取内容立即下载开关
12.verity: True/False 默认 Ture,认证 ssl 证书开关
13.cert: 本地 ssl 证书路径
2.response.content #返回的是 bytes 型也就是二进制的数据
3.response.headers # 返回的 http 请求头
4.response.json() # 返回响应中的 Json 数据
5.response.url # 返回 url
6.response.encoding # 返回响应的编码格式
7.response.cookies # 返回响应中的 cookie
8.response.text #返回的是 Unicode 型的数据。—文本
import json import warnings import requests, unittest class TestCase_auto003(unittest.TestCase): def setUp(self) -> None: # 解决错误 ResourceWarning: Enable tracemalloc to get the object allocation traceback warnings.simplefilter('ignore', ResourceWarning) self.s = requests.session() # dict = json.dumps({"mobile": "", "pwd": ""}) # header = {"Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", "Content-Type": "application/json", # "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"} # rsp = self.s.post('http://192.168.1.173:28082/register/login/pws', data=dict, headers=header) # self.s.headers['Cookies'] = rsp.headers['Cookies'] self.s.headers['User-Agent'] = "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Mobile Safari/537.36" self.s.headers['Content-Type'] = "application/json" def testcase_auto001(self): dict = json.dumps({"mobile": "", "pwd": ""}) rsp = self.s.post('http://192.168.1.173:28082/register/login/pws', data=dict) print(rsp.text) self.assertEqual(200, rsp.status_code, msg='pass') def testcase_auto002(self): dict = json.dumps({"bid": 96497, "uid": 96497}) rsp = self.s.post('http://192.168.1.173:28082/versions/dynamic/personal', data=dict) print(rsp.text) if rsp.status_code == 200: print("pass") else: print("fail") def tearDown(self) -> None: pass if __name__ == "__main__": unittest.main()
接口实战
使用 session 添加 token 到头文件中 在公司实际项目中,调接口首先需要获取 token,要先调用获取token 的请求,然后拿到 token 值之后,在后面接口中添加到头文件中。
self.session.headers.update({“token”:rsp.json()[‘data’][‘token’]})
通过在setup初始化方法中调用获取token,来拿到token的值,然后添加到整个session的 head 中去,后续请求中都不需要额外添加 head 了。
1、在测试用例前声明使用 data,用@data
运行结果中该用例执行了两次,分别输出的 test1 和 test2。
2、data 用法读取文件:
此方法需要解包,故需要用到 unpack 方法,在测试用例前声明@unpack 即可
2:上面写了读取方法之后,在测试用例前,直接使用该方法即可,@data(*readfile())这种形式,接着使用@unpack 解包的方法即可。
四、总结
这一篇教程只是接口测试中的小试牛刀,后续还有太多需要学习的,requests 库也不光可以用来做接口测试,包括爬虫之类的也是可以的,技术之路上永无止境,我们测试人员也需要多多努力。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
文档获取方式:
加入我的软件测试交流群:免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129631.html