前言
很多人会使用postman工具,或者熟悉python,但不一定会使用python来编写测试用例脚本,postman里面可以完整的将python代码复制出来。
(以下所有内容以豆瓣网站搜索功能为例子)
一、postman接口用例转换为python测试用例
打开postman,点击右侧的</>图标,页面右边会显示脚本,顶部修改导出的语言,这边我使用的是Python-Reqyests
![](https://i-blog.csdnimg.cn/blog_migrate/281b6ed256b7073be9de4877dfe51d98.png)
复制脚本,在PyCharm中打开即可,在导入使用之前如果没有reuqests库,可能会报错,我们需要安装reuqests库。
cmd命令窗口输入:pip install requests
导出后的脚本格式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import requests url = "<https://www.douban.com/search?" > payload = { 'q' : '三体' } files = [ ] headers = { 'Cookie' : 'bid=5bBvkukAbvY' } response = requests.request( "POST" , url, headers = headers, data = payload, files = files) print (response.text) |
二、转换为pytest测试用例
1.下面就是转成pytest的测试用例
1 2 3 4 5 6 7 8 9 10 11 12 13 | import requests class TestDouban: def test_douban( self ): url = "<https://www.douban.com/search?" > payload = { 'q' : '三体' } files = [] headers = { 'Cookie' : 'bid=5bBvkukAbvY' } response = requests.request( "POST" , url, headers = headers, data = payload, files = files) print (response.text) |
三、封装POST和GET方法
在一个项目中,根路由的路径是一样的,只是不同功能对应的具体的接口不一致,且POST和GET是目前测试用例中比较通用的方法,所以可以将根路由、POST和GET方法封装成一个通用的类,后面直接调用即可。
1.common.py—公共类封装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import requests class Common: def __init__( self ): # 豆瓣根路由 self .url_root = "<https://www.douban.com>" # get请求,uri是接口具体地址,params是get请求的参数,如果没有,默认为空 def get( self , uri, params = ''): # 拼凑访问地址 url = self .url_root + uri + params # 通过get请求访问对应地址 response = requests.get(url) # 返回request的response结果,类型为requests的Response类型 return response # post请求,uri是接口具体地址,params是post请求的参数,如果没有,默认为空 def post( self , uri, params = ''): # 拼凑访问地址 url = self .url_root + uri # 有参数,则访问对应的url,并赋值给默认参数data if len (params) > 0 : response = requests.post(url, data = params) # 无参数,只需要访问对应的url即可 else : response = requests.post(url) # 返回request的response结果,类型为requests的Response类型 return response |
2.具体接口测试用例
1 2 3 4 5 6 7 8 9 10 11 12 13 | import requests from common.common import Common class TestDouban: def setup( self ): self .com = Common() def test_douban( self ): uri = "/search?" payload = { 'q' : '三体' } response = self .com.post(uri, payload) # 由于file不需要,就将file删除了,至于hearder是否要添加可根据需求来定 |
执行结果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/81a31da0186d8d35fc959e351a0d400d.png)
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】
![](https://i-blog.csdnimg.cn/blog_migrate/2815321957aa34726929e036e2a11775.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d97bb7346b9e77f5005fb10c001f41da.png)