HttpRunner入门

2023-10-24 19:10
文章标签 入门 httprunner

本文主要是介绍HttpRunner入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先认识一下自动化领域的六大框架:
java:junit、testing
python:unitest、pytest、robotframework

一、什么是httprunner?

1.它是面向http协议的测试框架,只需要维护一份ymal/json就可以进行自动化测试、结合locust性能测试,线上监控、持续集成、devops等多种需求

二、设计思想和理念

1.复用优秀的开源项目(不重复造轮子,而是将轮子组装成战车)
2.约定大于配置(提升测试脚本的可维护性)
3.配置文件组织测试用例(yaml/json)
4.一次投入、多次复用
5.高度可扩展性

流程图:
请添加图片描述
官方架构图:
由图可知,测试用例中有多个测试步骤,每个步骤可以直接调api接口,也可以调别的测试用例。
在这里插入图片描述

三、环境搭建

1.安装命令pip install httprunnerpip installhar2case
2.验证环境hrun -Vhar2case -V
3.五个命令1.httprunner:主命令2.hrun:httprunner的别名,用于运行yaml/json/pytest测试用例3.hmark:httprunner mark的别名,用于将yaml/json转换成pytest文件4.har2case:httprunner har2case的别名,用于将har文件转换成yaml或json文件5.locust:用于性能测试

四、生成用例

1.har2cae xxx.har -2y:将har文件转换成yaml用例文件
2.har2case xxx.har -2j:将har文件转换成json用例文件

在这里插入图片描述
在这里插入图片描述

五、实现接口关联

1.extract:取值
2.$变量名:引用
config:name: testcase descriptionvariables: {}verify: false
teststeps:
-   name: /api/***request:headers:Accept: '*/*'requestid: '123456'json:uname: '61951577336'pwd: 'NTtlYPjWU88+7vZ5jl9106xAWOdBoEyyKKn8MCvwWmdk2rmbAJuUUByaKO3lizCJn9hMfLdb0cuvVWdRuwImA0MJ7HvXLD7UB9rJpH5m/LjXqjb6E5JoKSY2mCDUNcYk/VI5YYhRVxFUldDZbg/Ug/fagx0eQkCZEAunF+7HmsE='method: POSTurl: https://teacherpad-***validate:-   eq:- status_code- 200-   eq:- content.meta.ecode- 0extract:token: content.data.token //这里提取返回内容并赋给变量
-   name: /api/composer/***request:headers:Accept: '*/*'requestid: '1234'token: $tokenuid: '61951577336'json:kid: 82ktype: 0org_id: 80org_type: 11page_num: 1page_size: 10student_mode: 1,2teacher_id: 61951375269teacher_mode: 1,2,3,4,5,6,7method: POSTurl: http://ailearn-composer-in***validate:-   eq:- status_code- 200-   eq:- headers.Content-Type- application/json-   eq:- content.meta.ecode  //业务逻辑里的断言- 0

六、变量设置

6.1、全局变量设置

config——>variables(可选的)全局变量
示例如下段代码中的变量uname:

config:name: testcase descriptionvariables:uname: '61951577336'parameters:varA: ["configA"]verify: false
teststeps:
-   name: /api/t_pad/user/loginrequest:headers:Accept: '*/*'Accept-Encoding: gzip, deflate, brConnection: keep-aliveContent-Type: application/jsonUser-Agent: PostmanRuntime/7.28.4host: teacherpad***requestid: ${ENV(requestId)}json:uname: ${uname}pwd: ${pwd()}method: POSTurl: https://teacherpad-***validate:-   eq:- status_code- 200

6.2、.env文件变量设置

.env存储项目环境变量
例如:
.env文件设置:
在这里插入图片描述
读取env文件配置内容 ${ENV(变量名)}:

teststeps:
-   name: /api/t_pad/user/loginrequest:headers:Accept: '*/*'Accept-Encoding: gzip, deflate, brConnection: keep-aliveContent-Type: application/jsonUser-Agent: PostmanRuntime/7.28.4host: teacherpad-dev.xk12.cn:443requestid: ${ENV(requestId)}

6.3、debugtalk.py自定义变量函数

存储项目中逻辑运算辅助函数(类似于jemter里面的beanshell)
示例:
在这里插入图片描述
引用方式:${函数名()} 下面代码中的pwd:

teststeps:
-   name: /api/t_pad/user/loginrequest:headers:Accept: '*/*'Accept-Encoding: gzip, deflate, brConnection: keep-aliveContent-Type: application/jsonUser-Agent: PostmanRuntime/7.28.4host: teacherpad-dev.xk12.cn:443requestid: ${ENV(requestId)}json:uname: ${uname}pwd: ${pwd()}

七、生成测试报告

其实就是和pytest的html测试报告一样
在这里插入图片描述

八、httprunner框架目录

1.har:文件夹,存放har文件
2.api:文件夹,存放接口的yml文件
3.data:数据驱动文件夹
4.reports:测试报告文件夹
5.testcases:测试用例文件夹
6.testsuites:测试套件问价夹
debugtalk.py:存储项目中逻辑运算辅助函数
.env:存储项目环境变量

九、参数化(数据驱动)

持续完善中。。。

这篇关于HttpRunner入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP