15.宠物商店 接口自动化测试实战
目录
被测产品 需求说明 相关知识点 接口自动化测试实战被测产品
PetStore 宠物商城: 一个在线的小型的商城。 主要提供了增删查改等操作接口。 结合 Swagger 实现了接口的管理。需求说明
完成宠物商城宠物管理功能接口自动化测试。 编写自动化测试脚本。 完成复杂断言。相关知识点
形式章节描述 知识点 代理配置 利用代理分析测试脚本,排查请求错误 知识点 多层嵌套响应断言 利用 jsonpath 进行多层嵌套的响应断言实战思路
@startmindmapscale 10* 实战思路** 需求分析** 接口测试用例设计** 编写接口自动化测试脚本*** 脚本优化-配置代理查看接口数据*** 脚本优化-添加日志*** 脚本优化-使用 jsonpath 断言** 生成测试报告@endmindmap
需求分析
被测产品:宠物商店系统 - 宠物管理。 宠物商店接口文档:https://petstore.swagger.io/ 宠物管理业务场景: 添加宠物。 查询宠物信息。 修改宠物信息。 删除宠物。scale 10autonumberparticipant 测试人员 as testerparticipant 宠物管理模块 as petparticipant 宠物商店 as petStore tester -> pet: 编写脚本pet -> petStore: 添加宠物pet -> petStore: 查询添加后宠物customer -> tester: 测试断言pet -> petStore: 修改宠物信息pet -> petStore: 查询添加后宠物customer -> tester: 测试断言pet -> petStore: 删除宠物pet -> petStore: 查询添加后宠物customer -> tester: 测试断言
宠物管理接口业务流程测试用例
编写自动化测试脚本思路
@startmindmapscale 10* 思路** 获取接口信息*** swagger 接口文档*** 前端抓包** 单步调通接口** 根据业务流程串联起来** 添加断言,确认流程正常@endmindmap
编写自动化测试脚本
class TestPetstorePetmanager: def setup_class(self): self.base_url = "https://petstore.swagger.io/v2/pet" self.search_url = self.base_url + "/findByStatus" self.pet_id = 9223372000001084222 pet_status = "available" self.pet_info = { "id": self.pet_id, "category": { "id": 1, "name": "cat" }, "name": "miao", "photoUrls": [ "string" ], "tags": [ { "id": 5, "name": "cute" } ], "status": pet_status } self.search_param = { "status": pet_status } self.update_name = "miao-hogwarts" self.update_info = { "id": self.pet_id, "category": { "id": 1, "name": "cat" }, "name": self.update_name, "photoUrls": [ "string" ], "tags": [ { "id": 5, "name": "cute" } ], "status": pet_status } self.delete_url = self.base_url + f"/{self.pet_id}" def test_pet_manager(self): # 新增宠物 add_r = requests.post(self.base_url, json=self.pet_info) # 状态断言 assert add_r.status_code == 200 # 修改宠物 update_r = requests.put(self.base_url, json=self.update_info) # 状态断言 assert update_r.status_code == 200 # 删除宠物 delete_r =requests.delete(self.delete_url) # 状态断言 assert delete_r.status_code == 200
脚本优化 - 配置代理查看接口数据
在脚本中配置代理。 抓包查看接口测试中的接口请求和响应数据。proxy = { "http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"} requests.post(url, json=pet_info, proxies=proxy, verify=False)
脚本优化 - 添加日志
新建日志配置。 在用例中使用配置好的日志实例。# 配置日志import loggingimport os from logging.handlers import RotatingFileHandler # 绑定绑定句柄到logger对象logger = logging.getLogger(__name__)# 获取当前工具文件所在的路径root_path = os.path.dirname(os.path.abspath(__file__))# 拼接当前要输出日志的路径log_dir_path = os.sep.join([root_path, '..', f'/logs'])if not os.path.isdir(log_dir_path): os.mkdir(log_dir_path)# 创建日志记录器,指明日志保存路径,每个日志的大小,保存日志的上限file_log_handler = RotatingFileHandler(os.sep.join([log_dir_path, 'log.log']), maxBytes=1024 * 1024, backupCount=10)# 设置日志的格式date_string = '%Y-%m-%d %H:%M:%S'formatter = logging.Formatter( '[%(asctime)s] [%(levelname)s] [%(filename)s]/[line: %(lineno)d]/[%(funcName)s] %(message)s ', date_string)# 日志输出到控制台的句柄stream_handler = logging.StreamHandler()# 将日志记录器指定日志的格式file_log_handler.setFormatter(formatter)stream_handler.setFormatter(formatter)# 为全局的日志工具对象添加日志记录器# 绑定绑定句柄到logger对象logger.addHandler(stream_handler)logger.addHandler(file_log_handler)# 设置日志输出级别logger.setLevel(level=logging.INFO)
脚本优化 - 使用 jsonpath 断言
使用 jsonpath 实现多层嵌套响应的断言。jsonpath.jsonpath(r.json(), "$..id")
生成测试报告
安装 allure 相关依赖。# 生成报告信息pytest --alluredir=./report# 生成报告在线服务,查看报告allure serve ./report/
总结
通过 Swagger 文档获取接口信息。 使用 Requests 发出请求。 添加代理,抓包查看接口请求和响应数据。 使用 Jsonpath 提取复杂结构响应数据,然后进行断言。 添加 Log 日志。 生成 Allure 测试报告。相关知识
15.宠物商店 接口自动化测试实战
软件测试学习笔记丨宠物商店
霍格沃兹测试开发学社: [霍格沃兹测试学院](https://ceshiren.com/) 是业界领先的测试开发技术高端教育品牌,隶属于测吧(北京)科技有限公司。
学院课程均由名企一线测试大牛设计,提供实战驱动的系列课程。涵盖移动app自动化测试、接口自动化测试、性能测试、持续集成/持续交付/DevOp
Web3.0宠物商店实战教程:ETH智能合约入门到实践
链表实战之宠物商店
解析宠物商店pet
宠物商店 案例分析
宠物商店详细设计说明书
TP15 项目案例:宠物商店 ACCP 6.0 S2
Java实验项目三——宠物商店
网址: 15.宠物商店 接口自动化测试实战 https://www.mcbbbk.com/newsview489002.html
上一篇: 我是平民有这些宠物,用什么组合比 |
下一篇: 基于python+django的 |
推荐分享

- 1我的狗老公李淑敏33——如何 5096
- 2南京宠物粮食薄荷饼宠物食品包 4363
- 3家养水獭多少钱一只正常 3825
- 4豆柴犬为什么不建议养?可爱的 3668
- 5自制狗狗辅食:棉花面纱犬的美 3615
- 6狗交配为什么会锁住?从狗狗生 3601
- 7广州哪里卖宠物猫狗的选择性多 3535
- 8湖南隆飞尔动物药业有限公司宠 3477
- 9黄金蟒的价格 3396
- 10益和 MATCHWELL 狗 3352