api接口自动化测试
2024-04-18 17:10 加个小鸡腿 阅读(21) 评论(0) 编辑 收藏 举报常见的素质要求一般都需要:python使用经验,unitest框架,pytest框架,appium,CI/CD,自动化测试经验已经成为测试的必修课,有接口自动化测试,有app自动化测试,有web自动化测试,
这里我们先介绍下简单的接口自动化测试,后续补充简单web自动化测试和app自动化测试。
接口自动化测试:
前面我写了两个python脚本,图书管理系统,设计了几个常见的增删改查接口,包含了服务端和客户端,链接如下:
flask框架图书管理系统服务器端 - 加个小鸡腿 - 博客园 (cnblogs.com)
flask框架图书管理系统客户端 - 加个小鸡腿 - 博客园 (cnblogs.com)
现在,我们来将客户端的代码改版成自动化测试的方式, 只修改了其中两个接口,其他结果接口可以参考修改,我们使用的是python的unitest框架,结合request请求来完成的,改版后的代码如下:
import requests import unittest base_url='http://localhost:5000' class TestMyBook(unittest.TestCase): def test_get_all_books(self): '''获取图书列表''' response=requests.get(f'{base_url}/books') if response.status_code==200: print(response.json()) else: print(f'Error:{response.status_code}-{response.text}') self.assertEqual(200,response.status_code,"获取图书列表失败") def test_add_book(self): '''新增图书''' book_data = {'title': "add1", 'author': 'add1-author'} response = requests.post(f'{base_url}/books', json=book_data) if response.status_code == 201: print(response.json()) else: print(f'Error:{response.status_code}-{response.text}') self.assertEqual(201, response.status_code, "新增图书失败") if __name__=='__main__': suite=unittest.TestLoader().loadTestsFromTestCase(TestMyBook) with open('test_result.txt','w',encoding='utf-8') as output: runner=unittest.TextTestRunner(stream=output,verbosity=2) runner.run(suite)
以上文件名,我们定义位flask_client.py,命令行执行:python flask_client.py后,在同目录下会生成一个有点简陋的测试报告test_result.txt,内容如下:
如果觉得这个这是报告看着受不了,可以参考我的另一篇博客改成pytest的样子,用pytest 命令生成好看点的测试报告