当前位置: 首页 > article >正文

Httprunner接口测试框架入门

文章目录

    • 一、HttpRunner 介绍
    • 二、环境部署
    • 三、生成脚手架
    • 四、录制脚本 & 生成用例 & 运行测试

更多详细教程:
Httprunner测试用例规则讲解
Httprunner测试用例增强之变量(variables)的声明和引用
Httprunner测试用例增强之参数提取(extract)
Httprunner测试用例增强之自定义函数(debugtalk.xx)
Httprunner测试用例增强之参数化数据驱动(parameterize)
Httprunner测试用例增强之结果校验(validate)

一、HttpRunner 介绍

HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型。简单易用,功能强大,具有丰富的插件化机制和高度的可扩展能力。。

HttpRunner v4.0 同时采用了 Golang/Python 两种编程语言,底层会有两套相对独立的执行引擎,兼具 Golang 的高性能和 pytest 的丰富生态。

httpruuner官方文档:https://httprunner.com/docs/introduction/overview/

httprunner的优点:

  • 支持与 HAR/Postman/Swagger/Curl/JMeter 等工具对接,轻松实现用例生成和转换

  • httprunner内置了loguru日志模块

  • httprunner内置了locust模块,支持接口测试同时,又支持了性能测试

  • httprunner内置了jmespath模块,如果response过多,用jmespath模块取数据会更加的便捷

  • 可以通过一行命令,快速的生成一个接口测试框架

  • httprunner内置了pytest框架,使用pytest命令就可以运行httprunner脚本。

二、环境部署

  1. 安装python:这里不具体介绍如何安装了。
  2. 安装httprunnerpip install -i https://pypi.tuna.tsinghua.edu.cn/simple httprunner
  3. 安装allurepip install -i https://pypi.tuna.tsinghua.edu.cn/simple allure-pytest
  4. 下载allure报告插件,下载以后解压,allure文件的路径配置到环境变量-path里:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.13.2/
  5. 查看httprunner版本:httprunner -V

在这里插入图片描述

  1. 安装hrp
    通过pip 安装的httprunner 版本仅仅只能得到hrun命令。4.x版本新增了一个hrp 命令,需在github 上下载安装包https://github.com/httprunner/httprunner/releases

首先下载hrp对应安装包:我安装的是4.3.5版本,因此找到对应的安装包。
在这里插入图片描述

下载后解压,并将路径配置到环境变量path中。
在这里插入图片描述

重新打开cmd,输入hrp -v, 可以查看到安装的版本。
在这里插入图片描述

遇到的错误TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument: 'recursive_guard'
在这里插入图片描述

问题原因:ForwardRef._evaluate() 添加了一个新参数 ‘recursive_guard’,而在代码 pydantic/v1/typing.py(第 66 行)中缺少这个参数。
这是一个python版本3.12.4的bug,阅读了网上的参考资料以后,可以通过将python版本下调为3.12.3解决。
在这里插入图片描述

三、生成脚手架

执行命令:hrp startproject [filename],即可初始化指定名称的项目工程。
在这里插入图片描述

相关目录与文件说明:

- har:har文件夹存放har文件,har文件可以通过charles或者其他抓包工具来获取
- results:报告目录
- testcases:测试用例目录,初始化成功后 文件夹中包含了多个示例测试用例
- .env :环境配置文件
- .gitignore :git仓库忽略文件
- debugtalk.py:辅助函数功能文件, 可以编写实现任意自定义逻辑的函数,只需通过 `funppy` 进行` register` 和 `serve()` 即可。
- proj.json:

四、录制脚本 & 生成用例 & 运行测试

  1. 使用fiddler抓取接口请求
    这里我使用了过滤器Filters,仅抓取指定域名的请求,同时过滤掉了js、css静态文件等[ 使用正则表达式:REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js|jpeg)(\?.*)?$ ]

在这里插入图片描述

  1. 点击File ->Exprot Sessions ->HTTPArchive v1.2 ->将导出的.var文件放到项目的har目录
    在这里插入图片描述
    在这里插入图片描述

  2. 使用hrp命令将目录har下的.har文件转成 yaml文件
    命令:hrp convert --from-har har文件路径 指定输出类型 指定输出目录
    目前支持以下几种类型:--to-json/--to-yaml/--to-gotest/--to-pytest

在这里插入图片描述

  1. 运行测试
    命令:hrp run 需要具体运行的yaml文件 --gen-html-report
    在这里插入图片描述

  2. 查看测试报告
    results目录下打开report.html文件:
    在这里插入图片描述


http://www.kler.cn/a/513906.html

相关文章:

  • 华为EC6110T-海思Hi3798MV310_安卓9.0_通刷-强刷固件包
  • PHP语言的网络编程
  • Day 14 卡玛笔记
  • Yaml的使用
  • 【面试题】JVM部分[2025/1/13 ~ 2025/1/19]
  • Java基于SSM框架的社区团购系统小程序设计与实现(附源码,文档,部署)
  • 微信小程序使用上拉加载onReachBottom。页面拖不动。一直无法触发上拉的事件。
  • SQL-leetcode—1148. 文章浏览 I
  • tensorflow源码编译在C++环境使用
  • pycharm+pyside6+desinger实现查询汉字笔顺GIF动图
  • Golang Gin系列-5:数据模型和数据库
  • leetcode 407. 接雨水 II
  • 黑马点评之导入数据库
  • CES Asia 2025优惠期即将截止,独特模式助力科技盛会
  • 2025-1-21 Newstar CTF web week1 wp
  • 14-美妆数据分析
  • Java设计模式 十四 行为型模式 (Behavioral Patterns)
  • 【Spring】定义的Bean缺少隐式依赖
  • 解决npm install安装出现packages are looking for funding run `npm fund` for details问题
  • Spring中的事件和事件监听器是如何工作的?
  • GAN 用于图像增强
  • HTML新春烟花
  • 【25考研】考清华的软件工程专业的研究生需要准备什么?
  • 论文速读| A Survey on Data Synthesis and Augmentation for Large Language Models
  • 图片专栏——曝光度调整相关
  • 如何设置HSTS和OCSP Stapling?