httprunner结合pytest的自动化框架结构

2024-03-09 13:04

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

2. 项目结构

2.1. 初代项目结构

3. 用例结构 - pytest

3.1. 单接口用例结构

# NOTE: Generated By HttpRunner v4.3.5
# FROM: testcases\data\data_20240229_test.json
from httprunner import HttpRunner, Config, Step, RunRequestclass TestCaseData20240229Test(HttpRunner):config = Config("testcase description")teststeps = [Step(RunRequest("请求标题:最近的充值记录").get("https://ng-apptest.transspay.net/api/cfront/airtime/recharge/records/latest").with_headers(**{"accept-encoding": "gzip","content-type": "application/json","if-modified-since": "Wed, 28 Feb 2024 06:30:02 GMT","pp_channel": "googleplay","pp_client_ver": "5.3.0&602280702","pp_device_id": "bee648d4b0a5ab70012345","pp_device_type": "ANDROID","pp_req_sign": "ZDfAAOuQ4o8I8UVzS80MrwGv7ZHRHwPyZL27ZuWCbkM45wxQ41DMokcYx3P7%2BNZxuIlgjDZqPKlOe0u3lCiOeN6CxNqgxN%2FUCyHrFYCjNqHQt7A%2FQsSt6c9rog0j6aF1rZTK7K5kqTESmpvVlbPOkUh4cmjHVxWlotIkO3%2FO2aQ%3D","pp_timestamp": "1709185674115","pp_token": "22761d93-cea3-47cf-a8f9-a8087e540409","user-agent": "PalmPay/5.3.0&602280702 (Android 13)",}).validate().assert_equal("status_code", 200, "assert response status code").assert_equal("body.respCode", "00000000", "assert response body respCode").assert_equal("body.respMsg", "success", "assert response body respMsg")),]if __name__ == "__main__":TestCaseData20240229Test().test_start()

4. 用例转换

4.1. har文件生成

fiddler 或者 Charles 导出生成

4.2. har -> pytest

根据抓包工具的jar包,生成pytest用例

命令:

hrp convert --from-har .\loginV2.har --to-pytest --output-dir .

备注:如果缺失参数:--from-har,会出现转换失败的情况(版本差异调整)

转换效果:

 D:\httprunner\demo\testcases> hrp convert --from-har .\loginV2.har --to-pytest --output-dir .
3:21PM INF Set log to color console
3:21PM INFO Set log level
3:21PM INF ensure python3 venv packages=["httprunner==v4.3.5"] python3="C:\\Users\\Administrator\\.hrp\\venv\\Scripts\\python3.exe"
3:21PM INF python package is ready name=httprunner version=v4.3.5
3:21PM INF set python3 executable path Python3Executable="C:\\Users\\Administrator\\.hrp\\venv\\Scripts\\python3.exe"
3:21PM INF convert testcase fromType=har outputType=pytest path=".\\loginV2.har"
3:21PM INF load file path=".\\loginV2.har"
3:21PM INF convert teststep method=POST url=https://ng-apptest.transspay.net/api/c-bff-product/start/loginV2
3:21PM INF dump data to json path="D:\\httprunner\\demo\\testcases\\loginV2_test.json"
3:21PM INF exec command cmd="C:\\Windows\\system32\\cmd.exe"
2024-02-25 15:21:24.591 | INFO | make path: D:\httprunner\demo\testcases\loginV2_test.json
2024-02-25 15:21:24.607 | INFO | ensure compatibility with testcase format v2/v3
2024-02-25 15:21:24.607 | INFO | Loading environment variables from D:\httprunner\demo\.env
2024-02-25 15:21:24.607 | INFO | start to make testcase: D:\httprunner\demo\testcases\loginV2_test.json
2024-02-25 15:21:24.607 | INFO | generated testcase: D:\httprunner\demo\testcases\loginV2_test_test.py
2024-02-25 15:21:24.607 | INFO | format pytest cases with black ...
reformatted D:\httprunner\demo\testcases\loginV2_test_test.pyAll done! ✨ 🍰 ✨
1 file reformatted.
3:21PM INF conversion completed outputFile=loginV2_test.py

5. 用例执行

5.1.3. pytest 直接执行

pytest .\testcases\requests_test.py --html=reports/result.html

生成报告:

6. allure报告集成

6.1. 生成allure数据

pytest .\testcases\requests_test.py --alluredir allure_result

6.2. 生成allure报告

 allure generate .\allure_result\ -o .\allure_report\

6.3. 查看报告

allure open allure-report
allure serve allure-result

这篇关于httprunner结合pytest的自动化框架结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

如何使用Ansible实现CI/CD流水线的自动化

如何使用Ansible实现CI/CD流水线的自动化 持续集成(CI)和持续交付(CD)是现代软件开发过程中的核心实践,它们帮助团队更快地交付高质量的软件。Ansible,作为一个强大的自动化工具,可以在CI/CD流水线中发挥关键作用。本文将详细介绍如何使用Ansible实现CI/CD流水线的自动化,包括设计流水线的结构、配置管理、自动化测试、部署、以及集成Ansible与CI/CD工具(如Jen

Go 语言中Select与for结合使用break

func test(){i := 0for {select {case <-time.After(time.Second * time.Duration(2)):i++if i == 5{fmt.Println("break now")break }fmt.Println("inside the select: ")}fmt.Println("inside the for: ")}} 执行后

BIRT 报表的自动化测试

来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-birttest/如何为 BIRT 报表编写自动化测试用例 BIRT 是一项很受欢迎的报表制作工具,但目前对其的测试还是以人工测试为主。本文介绍了如何对 BIRT 报表进行自动化测试,以及在实际项目中的一些测试实践,从而提高了测试的效率和准确性 -------

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

自动化表格处理的革命:智能文档系统技术解析

在当今数据驱动的商业环境中,表格数据的自动化处理成为了企业提高效率、降低成本的关键。企业智能文档系统在智能表格识别方面展现出卓越的性能,通过精准识别和处理各种通用表格,显著提升了企业文档管理的智能化水平。本文将深入探讨该系统在表格识别方面的关键技术和应用优势,以及如何通过行业定制化服务满足不同行业的需求。 1. 通用表格识别 智能文档系统通过先进的OCR技术和表格结构识别算法,能够精准

Ganymed实现基本的自动化部署API

Ganymed SSH-2 for Java是一个纯Java实现的SHH2库,官网为http://www.ganymed.ethz.ch/ssh2/,最新的更新时间为2006年10月,在用之前,请仔细看一下FAQ,真的能避免很多很多问题 在google上找到的ganymed-ssh2的官网是http://www.ganymed.ethz.ch/ssh2/,进去看官网的英文简介可以看到该网站已经

Jenkins--pipeline认识及与RF文件的结合应用

什么是pipeline? Pipeline,就是可运行在Jenkins上的工作流框架,将原本独立运行的单个或多个节点任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。 为什么要使用pipeline? 1.流程可视化显示 2.可自定义流程任务 3.所有步骤代码化实现 如何使用pipeline 首先需要安装pipeline插件: 流水线有声明式和脚本式的流水线语法 流水线结构介绍 Node:

python自动化测试框架--RobotFramework

为什么需要测试框架 在测试中,经常会为了怎样做测试、使用什么测试工具、如何使用、为什么使用测试工具、使用测试工具能帮助到我们什么等等问题而纠结。当我们选择一项测试工具时,如何组织大量自动化用例;如何合理的进行初始化清除;如何批量筛选待执行的用例;如何输出清晰的测试报告,就是需要我们考虑的事情了。下面简单介绍个使用比较广泛的自动化测试框架,即Robotframework。 RF的特点 RF:由pyt

探索Invoke:Python自动化任务的瑞士军刀

文章目录 探索Invoke:Python自动化任务的瑞士军刀背景:为何选择Invoke?`invoke`是什么?如何安装`invoke`?简单的`invoke`库函数使用方法场景应用:`invoke`在实际项目中的使用场景一:自动化测试场景二:代码格式化场景三:部署应用 常见问题与解决方案问题一:命令执行失败问题二:权限不足问题三:并发执行问题 总结 探索Invoke:P