写点什么

软件测试学习笔记丨宠物商店 - 接口自动化测试实战

作者:测试人
  • 2024-10-17
    北京
  • 本文字数:1343 字

    阅读完需:约 4 分钟

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

一、被测产品

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


二、需求说明

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

三、相关知识点


四、接口自动化测试实战


五、宠物商店需求分析

  • 被测产品:宠物商店系统 - 查询宠物信息

  • 宠物商店接口文档: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() != []
复制代码

2、脚本优化-添加日志

  • 新建日志配置;

  • 在用例中使用配置好的日志实例。

# 配置日志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)
复制代码

3、脚本参数化

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

@pytest.mark.parametrize("status",        ["available", "pending", "sold"])
复制代码

4、生成测试报告

  • 安装 allure 相关依赖。

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

九、总结

  • 通过 swagger 文档获取接口信息;

  • 使用 Requests 发出携带请求参数的 GET 请求;

  • 断言响应是否符合预期;

  • 添加 Log 日志;

  • 使用参数化方法实现一条用例可执行多个测试数据;

  • 生成 Allure 测试报告。

软件测试开发免费视频教程分享


发布于: 刚刚阅读数: 3
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨宠物商店-接口自动化测试实战_软件测试_测试人_InfoQ写作社区