自动化测试框架pytest+allure+requests

2024-08-22 01:52

本文主要是介绍自动化测试框架pytest+allure+requests,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近复习了一下关于自动化测试的内容,结合[码尚教育] 相关的思路来对测试框架进行开发。
争取实现零代码来实现自动化测试环境的搭建

AutoTestFrame

介绍

AutoTestFrame是一个基于Python的自动化测试框架,旨在帮助测试人员快速、高效地完成测试任务。

软件架构

软件架构说明
pytest + requests + faker + allure

安装教程

pip install -r requirements.txt

使用说明

  1. 该框架基于pytest,所以首先需要安装pytest。
  2. 克隆项目到本地。
  3. 安装依赖包。
  4. 运行命令pytest即可运行测试用例。
  5. 运行命令allure generate ./reports -o./allure-report生成测试报告。
  6. 运行命令allure open ./allure-report查看测试报告。
  7. 运行命令allure serve ./allure-report启动测试报告服务器。

或者直接运行runner.py文件。

python runner.py

目录结构

AutoTestFrame
├── README.md    # 说明文档
├── resource     # 资源文件
│   ├── allure-2.30.0   # allure程序
│   └── template         # 测试用例模板
├── reports      # 测试报告
├── requirements.txt   # 依赖包
├── runner.py    # 运行文件
├── test_api_cases   # 测试用例
│   └── test_all_case.py   # 所有测试用例
└── common  # 公共模块├── file_engine  # 文件处理模块├── model  # 数据模型模块├── util  # 工具模块├── logger.py  # 日志模块└── config.py   # 配置文件

接口测试用例

用例模板

- 模块名称: 测试登录接口名称: 登录用例名称: 登录成功用例描述: 用户名正确,密码正确,登录成功是否运行: true请求数据:method: posturl: http://127.0.0.1:5000/api/loginjson:userName: '15740525667'password: admin@123456断言:- 断言方式: ''预期响应内容: 操作成功实际响应内容: 'response.json().get("msg")   # 预期响应的msg值,response为requests.Response对象'断言信息: 登录失败提取数据:token:- json- $.data.token- 0

用例说明

  • 请求数据中集成了 faker 库,可以随机生成用户名和密码。
    • 使用方法:${faker.name}
    • faker 库的更多用法参考 https://faker.readthedocs.io/en/master/index.html
  • 请求数据集成了一些方法,可以直接使用。
    • 使用方法:${timestamp(13)}, 获取当前时间戳
    • 可以在 data_tools_util.py中进行拓展,实现更多的方法
  • 断言中,实际响应内容可以直接使用 response 对象获取
  • 提取数据中,可以提取响应中的 token 值,并赋值给变量 token。
    • token: [json, $.data.token, 0]
    • json: requests.Response对象的 json() 方法返回的字典
    • . d a t a . t o k e n : j s o n p a t h 表达式,用于提取 t o k e n 值 , 或者正则表达式, j s o n p a t h 表达式参考 h t t p s : / / j s o n p a t h . c o m / , 必须 ‘ .data.token: jsonpath 表达式,用于提取 token 值, 或者正则表达式,jsonpath 表达式参考 https://jsonpath.com/, 必须` .data.token:jsonpath表达式,用于提取token,或者正则表达式,jsonpath表达式参考https://jsonpath.com/,必须.开头, $表示根节点。提取出来时list`类型。
    • 0: 指示提取 token 值中的第 0 个值

项目地址

https://gitee.com/chiyaun/auto-test-frame
此项目是我个人研发的,欢迎各位进行拓展

这篇关于自动化测试框架pytest+allure+requests的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094909

相关文章

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos