HttpRunner_参数化进阶

news2024/11/19 3:43:57

目录

一.获取返回包数据

二.调用其他接口返回值

三.yml文件

四.设置全局变量并引用

五.调用函数

六.参数化驱动(最简单的方式)

七.参数化驱动(复杂的方式)  

八.使用指定的报告模板+指定报告生成路径

九.保存测试过程数据

十.单独使用HttpRunner


一.获取返回包数据

  在提取参数时,当 HTTP 的请求响应结果为 JSON 格式,则可以采用.运算符的方式,逐级往下获取到参数值;响应结果的整体内容引用方式为 content 或者 body,如上面的content.errorCode

二.调用其他接口返回值

(1)前置接口中设置(支持多个)指定的参数
关键字:extract 参数名:token 参数值:content.token

extract:
    token: content.token

(2)引用接口中调用该参数名
关键字:$参数名

token: $token

三.yml文件

一个接口在testcases目录下建一个yml(json)文件,内部存储该接口的所有测试场景

四.设置全局变量并引用

(1)设置全局变量参数
关键字:variables 参数名:device_sn 参数值:FwgRiO7CNA50DSU

variables:
    device_sn: FwgRiO7CNA50DSU

(2)引用接口中调用该参数名
关键字:$参数名

device_sn: $device_sn

五.调用函数

(1)定义函数
debugtalk.py中编写函数
(2)调用函数

关键字:${函数名($参数)}

举例:debugtalk.py中定义的函数是get_name(n),则引用时是${get_name(1)}

六.参数化驱动(最简单的方式)

(1)新建一个存储参数化数据的yml文件,内容如下:

config:
    name:
testcases:
    create user $user_id:
testcase: testcases\test_demo.yml --- 需要执行参数化的用例路径
parameters:
    user_id: ["index", "index1"] ---需要执行参数话的数据及其参数

(2)引用参数

关键字:$参数名
$user_id

七.参数化驱动(复杂的方式)  

注意:从 1.5.11 版本开始,HttpRunner 不再支持测试步骤(teststep)层级的参数化数据驱动,只支持测试用例(testcase)层级的参数化驱动配置,所以下面这种参数化方式已经不支持,比如下图所示:

不支持的方式

(1)支持的参数化方式有3中
 参数名称的定义分为两种情况:
  a.独立参数单独进行定义;
  b.多个参数具有关联性的参数需要将其定义在一起,采用短横线(-)进行连接。
 数据源指定支持三种方式:
  a.在 YAML/JSON 中直接指定参数列表
  b.通过内置的 parameterize(可简写为P)函数引用 CSV 文件
  c.调用 debugtalk.py 中自定义的函数生成参数列表
(2)在testsuites目录下新建一个存储参数化数据的yml文件,内容如下:

config:
    name:
testcases:
    create user $username-$password:
testcase: testcases\test_demo.yml
parameters:
    - index: ["test", "test1"] --- 单一参数列表
    - username-password:
        - ["user1", "111111"]
        - ["user2", "222222"]
        - ["user3", "333333"] --- 多参数列表
    - resName-status: ${P(data/account.csv)} ---外部csv文件

(3)使用参数

关键字:$参数名
/api/main/$index/$username/$password/$resName/$status

(4)运行结果:

参数化运行结果

八.使用指定的报告模板+指定报告生成路径

hrun testcases\test_data.yml --report-template E:/autotest/api_autotest/logs/report.html --report-dir E:/autotest/api_autotest/logs/

九.保存测试过程数据

以log日志文件形式保存(此处名字都是一样的,对于多次运行结果会覆盖,可优化)

hrun testcases\test_data.yml  --save-tests
(1).XXX.loaded.json:测试用例加载后的数据结构内容,加载包括测试用例文件(YAML/JSON)、debugtalk.py、.env 等所有项目文件
(2).XXX.parsed.json:测试用例解析后的数据结构内容,解析内容包括测试用例引用(API/testcase)、变量计算和替换、base_url 拼接等
(3).XXX.summary.json:测试报告生成前的数据结构内容。

十.单独使用HttpRunner

(1)新建.py文件,内容如下:

# coding:utf-8
from httprunner.api import HttpRunner
kwargs = {'failfast': False, 'report_dir': 'E:\\demo\\test'} # 看api.py中__init__方法参数
runner = HttpRunner(**kwargs)
result_runner = runner.run('E:\\autotest\\api_autotest\\testcases\\test_demo.yml') # 执行指定目录下用例
print(result_runner) # 输出报告地址
summary = runner.summary # 获取执行结果,需要在run方法后
print(summary)

(2)运行结果如下:


-事必有法,然后有成- 最后祝大家早日达到测试的天花板!



 以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699793.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QCN6274 QCN9274 What is the difference?|WIFI7 Solution|Wallys

QCN6274 QCN9274 What is the difference?|WIFI7 Solution|Wallys Q:QCN6274 QCN9274 What is the difference? A:The QCN6274 is a Qualcomm WiFi 7 chip, and Wallys is currently in the process of developing a WiFi module integrated with the QCN9274 chip. Its imp…

Pytorch实现多GPU并行训练(DDP)

Pytorch实现并行训练通常有两个接口:DP(DataParallel)和DDP(DistributedDataParallel)。目前DP(DataParallel)已经被Pytorch官方deprecate掉了,原因有二:1,DP…

浅聊Android性能优化~

作者:一只修仙的猿 前言 关于性能优化,可能我们的第一反应是这是高手做的事情,一直以来我也是这样认为的。但在最近一段时间,在公司项目上做了一些框架的性能优化,让我初步掀开了性能优化的面纱,也对他有了…

VirtualBox 部署 KVM 虚拟化

什么是KVM技术? KVM(Kernel-based Virtual Machine)是一种开源的虚拟化技术,它是Linux内核的一部分。KVM通过将Linux内核转换为Hypervisor,允许在同一物理主机上运行多个虚拟机实例,每个实例可以独享一部分…

JAVA学习之String学习

1.底层是用什么实现的? JDK8用的char数组,JDK9开始使用byte数组,而且都是final型,所以不同字符串(值)的地址必然不同。 char和byte的区别:char是2个字节表示,而byte是一个字节。 JDK17中&…

Vue3解决:[Vue warn]: Failed to resolve component: el-table(或el-button) 的三种解决方案

1、问题描述&#xff1a; 其一、报错为&#xff1a; [Vue warn]: Failed to resolve component: el-table If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. at <App> 或者&#xff1a; …

网络安全(黑客)自学

建议一&#xff1a;黑客七个等级 黑客&#xff0c;对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域&#xff0c;越深入越敬畏&#xff0c;知识如海洋&#xff0c;黑客也存在一些等级&#xff0c;参考知道创宇 CEO ic&#xff08;世界顶级黑客团队 0x557 成员&…

kubectl-ai:K8S资源清单的GPT助手

琦彦&#xff0c;在 **云原生百宝箱 **公众号等你&#xff0c;与你一起探讨应用迁移&#xff0c;GitOps&#xff0c;二次开发&#xff0c;解决方案&#xff0c;CNCF生态&#xff0c;及生活况味。 kubectl-ai 项目是一个kubectl使用 OpenAI GPT 生成和应用 Kubernetes 清单的插件…

【APP自动化测试必知必会】Appium之微信小程序自动化测试

本节大纲 H5 与小程序介绍 混合 App 元素定位环境部署 混合 App 元素操作 Airtest 测试 App 01.H5与小程序介绍 H5概述 H5 是指第 5 代 HTML &#xff0c;也指用 H5 语言制作的一切数字产品。 所谓 HTML 是“超文本标记语言”的英文缩写。我们上网所看到网页&#xf…

Oculus创始人谈Vision Pro:苹果在硬件设计、营销都做对了选择

早在Vision Pro正式发布之前&#xff0c;Oculus创始人Palmer Luckey就已经体验过早期版本&#xff0c;并给出了极高的评价。Luckey指出&#xff0c;苹果在XR头显上的策略是明智的&#xff0c;先打造出每个人预期中的头显&#xff0c;然后再去考虑如何让大家买得起。 Vision Pro…

远程控制电脑软件VNC安装使用教程:Windows系统

什么是VNC&#xff1f; VNC (Virtual Network Console)&#xff0c;即虚拟网络控制台&#xff0c;它是一款基于 UNIX 和 Linux 操作系统的优秀远程控制工具软件&#xff0c;由著名的 AT&T 的欧洲研究实验室开发&#xff0c;远程控制能力强大&#xff0c;高效实用&#xff…

【python】python编程基础

基础工具包 python 原生数据结构元组 Tuple列表 list集合 set字典 dictionary NumPy 数据结构数组 Ndarray矩阵 Matrix Pandas 数据结构序列 Series &#xff08;一维&#xff09;数据框 DataFrame &#xff08;二维&#xff09; Matplotlib 数据可视化绘制饼图绘制折线图绘制直…

《Linux操作系统编程》 第六章 Linux中的进程监控: fork函数的使用,以及父子进程间的关系,掌握exec系列函数

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

一文读懂高分文章必备分析-GSEA

Gene Set Enrichment Analysis 或称 GSEA&#xff0c;是一种常用于转录组基因表达分析的数据挖掘技术&#xff0c;已经在《nature》、《Cell》、《ISME》、《Molecular Cell》、《Bioactive Materials》等高分杂志中发表多篇文章&#xff0c;涉及转录组及多组学内容。 凌恩生物…

yxcms存储型XSS至getshell 漏洞复现

为方便您的阅读&#xff0c;可点击下方蓝色字体&#xff0c;进行跳转↓↓↓ 01 环境部署02 漏洞配置03 利用方式04 修复方案 01 环境部署 &#xff08;1&#xff09;yxcms yxcms 基于 PHPMySQL 开发&#xff0c;这是一个采用轻量级 MVC 设计模式的网站管理系统。轻量级 MVC 设…

13-Cookie、Session、Token

目录 1.前置知识——HTTP协议 1.1.HTTP 的主要特点有以下 5 个&#xff1a; 1.2.HTTP 组成 1.3.为什么会有Cookie、Session、Token&#xff1f; 2.Cookie 3.Session PS&#xff1a;Cookie 和 Session 的联系与区别 4.Token 4.1.token的组成 4.2.token是如何生成的&am…

【广州华锐互动】VR航天航空体验展厅提供沉浸式的展示效果

VR航天航空体验展厅是一种基于虚拟现实技术的在线展览形式&#xff0c;它通过模拟真实的太空环境&#xff0c;为用户提供了一种身临其境的参观体验。与传统的线上展览相比&#xff0c;VR航天航空体验展厅具有以下几个特色&#xff1a; 1.沉浸式体验&#xff1a;VR航天航空体验…

史上最详细的webrtc-streamer访问摄像机视频流教程

目录 前言 一、webrtc-streamer的API 二、webrtc-streamer的启动命令介绍 1.原文 2.译文 三、webrtc-streamer的安装部署 1.下载地址 https://github.com/mpromonet/webrtc-streamer/releases 2.windows版本部署 3.Linux版本部署 四、springboot整合webrtc-streamer …

技术不断变革,亚马逊云科技中国峰会引领企业重塑业务

过去十年&#xff0c;数字化转型的浪潮携带着机遇和挑战席卷而来&#xff0c;几乎每个企业都在做数字化转型&#xff0c;开始向大数据、人工智能等新技术寻求生产力的突破。但随着数字化转型深入&#xff0c;很多企业开始感受到数字化投入的成本压力&#xff0c;加之新技术正带…

Alibi:Attention With Linear Biases Enables Input Length Extrapolation

Alibi:Attention With Linear Biases Enables Input Length Extrapolation IntroductionMethodResult参考 Introduction 假设一个模型在512token上做训练&#xff0c;在推理的时候&#xff0c;模型在更长的序列上表现叫做模型的外推性。作者表明以前的位置编码如Sin、Rotary、…