当前位置:
首页 > temp > python入门教程 >
-
Python 接口测试(五)
五:使用python进行组织编写接口测试用例
接口测试其实就是几个步骤。
- 拿到接口的url地址
- 查看接口是用什么方式发送
- 添加请求头,请求体
- 发送查看返回结果,校验返回结果是否正确
明白了接口测试的测试步骤,那么我们就可以来组织我们的代码。
import requests # 接口的url url = "http://fanyi.baidu.com/v2transapi" # 接口的参数 params = { "from":"en", "to":"zh", "query": "test" } r = requests.request("post", url, params=params) # 打印返回结果 print(r.text) # 为了让结果看的更加清楚一点,我取来翻译的字段 import json d = json.loads(r.text) print(d['liju_result']['tag'])
结果:
['试验', '测验', '考验', '化验', '考查', '受试验', '受测验', '受考验', '测得结果']
(结果很长,截取最后的)
修改参数再次请求;
import requests url = "http://fanyi.baidu.com/v2transapi" params = { "from":"en", "to":"zh", "query": "study" # } r = requests.request("post", url, params=params) import json d = json.loads(r.text) print(d['liju_result']['tag'])
结果:
['学习', '研究', '课题', '书房', '结论', '考虑', '沉思', '努力', '想出']
ps:我们看看利用工具测试该接口
接下来我们来引入unittest库优化代码:
import requests,unittest,json class Testbaiduapi(unittest.TestCase): def setUp(self): url = "http://fanyi.baidu.com/v2transapi" def testzhen(self): params = { "from":"en", "to":"zh", "query": "study" # } url = "http://fanyi.baidu.com/v2transapi" r = requests.request("post", url, params=params) r=json.loads(r.text) assert u'学习' in r['liju_result']['tag'] def testzhen1(self): params = { "from":"en", "to":"h", "query": "stud" # } url = "http://fanyi.baidu.com/v2transapi" r = requests.request("post", url, params=params) r=json.loads(r.text) assert u'学习' in r['liju_result']['tag'] def tearDown(self): pass if __name__=='__main__': unittest.main(verbosity=2)
结果:
在python中,提供了HTMLTestRunner.py来生成测试报告,把该文件下载后,直接放到python安装文件的lib的目录下,
就可以导入该模块使用了,见该实现的代码:
import requests,unittest,json,HTMLTestRunner class Testbaiduapi(unittest.TestCase): def setUp(self): url = "http://fanyi.baidu.com/v2transapi" def testzhen(self): params = { "from":"en", "to":"zh", "query": "study" # } url = "http://fanyi.baidu.com/v2transapi" r = requests.request("post", url, params=params) r=json.loads(r.text) assert u'学习' in r['liju_result']['tag'] def testzhen2(self): params = { "from":"en", "to":"h", "query": "stud" # } url = "http://fanyi.baidu.com/v2transapi" r = requests.request("post", url, params=params) r=json.loads(r.text) assert u'学' in r['liju_result']['tag'] def tearDown(self): pass if __name__=='__main__': report_dir= r's.html' re_open= open(report_dir,'wb') suite=unittest.TestLoader().loadTestsFromTestCase(Testbaiduapi) runner=HTMLTestRunner.HTMLTestRunner( stream=re_open, title=u'百度翻译api接口测试报告', description=u'百度翻译api接口测试详情' ) runner.run(suite)
执行后,会在当前目录下生成测试报告,截图如下:
其他接口的测试方法也是这个思路,
作者寄语:
前进的道路我们充满着迷茫,
前进的每一步我们都会有收获。
路在脚下,我们决定不了我们的出身,但是我们可以努力改变我们未来。
告别昨天失败的自己,努力拼搏今天,成就美好明天
来源:https://www.cnblogs.com/leiziv5/p/6422954.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数