首页 > 分享 > 软件测试学习笔记丨宠物商店

软件测试学习笔记丨宠物商店

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32553

一、被测产品

PetStore 宠物商城: 一个在线的小型的商城。主要提供了增删查改等操作接口。结合 Swagger 实现了接口的管理。

二、需求说明

完成宠物商城宠物查询功能接口自动化测试。 编写自动化测试脚本。完成断言。

三、相关知识点

形式章节描述知识点接口请求方法http 接口请求方法构造知识点接口请求参数http 接口请求参数构造知识点接口请求体-jsonhttp 接口请求体为 json 格式知识点接口响应断言http 接口响应状态码断言

四、接口自动化测试实战

五、宠物商店需求分析

被测产品:宠物商店系统 - 查询宠物信息宠物商店接口文档:https://petstore.swagger.io/

六、接口测试用例设计

宠物查询单接口用例:

七、编写接口自动化测试脚本思路

查询宠物信息:

八、编写自动化测试脚本

1、基础脚本

class TestPetstorePetsearch: def setup_class(self): # 定义接口请求 URL self.base_url = "https://petstore.swagger.io/v2/pet" self.search_url = self.base_url + "/findByStatus" def test_search_pet(self): # 查询接口请求参数 params = { "status": "available" } # 发出查询请求 r = requests.get(self.search_url, params=params) # 状态断言 assert r.status_code == 200 # 业务断言 assert r.json() != []

123456789101112131415161718

2、脚本优化-添加日志

新建日志配置;在用例中使用配置好的日志实例。

# 配置日志 import logging import 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)

12345678910111213141516171819202122232425262728293031

3、脚本参数化

使用pytest parametrize装饰器,实现宠物状态的参数化。

@pytest.mark.parametrize("status", ["available", "pending", "sold"] ) 123

4、生成测试报告

安装allure相关依赖。

# 生成报告信息 pytest --alluredir=./report # 生成报告在线服务,查看报告 allure serve ./report/ 1234

九、总结

通过swagger文档获取接口信息;使用Requests发出携带请求参数的GET请求;断言响应是否符合预期;添加Log日志;使用参数化方法实现一条用例可执行多个测试数据;生成Allure测试报告。

在这里插入图片描述

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

相关知识

宠物商店软件合集
今天我开始学习:PETSHOP3.0宠物商店(经典案例)
宠物商店(pet
宠物商店详细设计说明书
宠物商店 案例分析
2024年一季度线上宠物市场表现如何丨研报笔记
脑声问答期丨动物享乐型摄食行为如何测试?
paddleocr学习笔记(四)评估、推理
猫经济、拟人化、成分健康天然已成宠物食品三大趋势丨研报笔记
宠物软件排行榜2023 宠物软件有哪些

网址: 软件测试学习笔记丨宠物商店 https://m.mcbbbk.com/newsview419150.html

所属分类:萌宠日常
上一篇: 宝宝猫咪的成长日记——3个月体重
下一篇: 克苏鲁宠物2