python3+requests+unittest:接口自动化测试(一…
2018-06-18 03:29:20来源:未知 阅读 ()
转载请表明出处:https://www.cnblogs.com/shapeL/p/9179484.html
简单介绍框架的实现逻辑,参考代码的git地址:
https://github.com/zhangying123456/python_unittest_interface
1.环境准备
python3 + pycharm编辑器
2.框架目录展示
(该套代码只是简单入门,有兴趣的可以不断后期完善)
(1)run.py主运行文件,运行之后可以生成相应的测试报告,并以邮件形式发送;
(2)report文件夹存放测试结果报告;
(3)unit_test文件夹是存放测试用例(demo.py和test_unittest.py用例用法介绍,实际项目中可以按照不同模块新建python package,来存放不同模块的接口用例);
(4)util对测试接口相关方法的封装:HTMLTestRunner.py生成测试报告的封装;send_mail.py发送邮件的封装;test_get_post.py接口请求类型的封装。
3.代码实现说明
(1)get、post接口请求实例介绍
【1】requests.get()、requests.post()用法可以参考文档:https://www.cnblogs.com/shapeL/p/9037035.html
【2】请求之后对返回结果进行断言:assertEqual()等,断言方法很多,可上网查询
(2)实际中,有些参数或方法在执行用例之前必须说明,这就涉及到setUp、tearDown、setUpClass、tearDownClass的用法
【1】setup():每个测试函数运行前运行;teardown():每个测试函数运行完后执行;setUpClass():必须使用@classmethod 装饰器,所有test运行前运行一次;tearDownClass():必须使用@classmethod装饰器,所有test运行完后运行一次
【2】也可以对某些用例执行过程中跳过:unittest.skip(),具体使用方法可上网查询
(3)如果每次接口请求时都使用requests/get、post请求实在是繁琐,我们可以对该方法进行封装,接口请求时直接调用即可
(4)测试用例编写完之后,主函数run.py直接使用unittest模块将所有用例一并执行
【1】unittest模块:TestSuite 多个测试用例集合在一起;TestRunner 是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息(unittest.TextTestRunner().run(suite))
【2】suite.addTests()和suite.addTest()均可实现
# 2种用法:第一种suite.addTest() suite.addTest(Case('test_case01')) suite.addTest(Case('test_case02')) suite.addTest(Test('test_01')) suite.addTest(Test('test_02')) #2种用法:第二种suite.addTests() suite.addTests(map(Test, ["test_01", "test_02"])) suite.addTests(map(Case, ["test_case01", "test_case02"]))
【3】TestRunner测试结果输出到控制台,要将测试结果输出到report中,使用HTMLTestRunner.py文件(该文件参考地址:https://github.com/huilansame/HTMLTestRunner_PY3)
(5)测试完成之后,想要将测试结果发送邮件给相关人员
发送邮件具体实现方法,参考文档:https://www.cnblogs.com/shapeL/p/9115887.html
说明:
1.代码中涉及到的测试数据都屏蔽掉了,可以直接使用自己负责项目的真实数据进行了解;
2.该套测试脚本相对基础,需要完善的地方还要很多,欢迎各位学习交流;
3.后续会再写一篇博客接口自动化测试(二),实现Excel来管理用例等。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Flask request接口获取参数 2019-08-13
- 利用python自动生成verilog模块例化模板 2019-08-13
- 在 Python 中这样命名变量就是给自己挖坑 2019-08-13
- 一篇文章教你使用Python自动赚取支付宝积分,网友:发家致富 2019-07-24
- 我是如何自学python到找到高薪工作 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash