火爆全网,HttpRunner自动化测试框架-parameters参数化(超细整理)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

在使用HttpRunner测试过程中,可能会遇到这种场景:
账号登录功能,需要输入用户名和密码,设计测试用例后有 N 种组合情况

如果测试组合比较少,比如只有2个,那我们直接在YAML脚本中写2个 test 就行了,但如果测试组合有10个,或者上百个,我们总不可能写10个,甚至100个 test 吧?

因此,在这里我们就需要用到参数化。在HttpRunner中,通过关键字 parameters 来实现参数化数据驱动机制,不管有多少测试组合,我们只需写1个 test 就行了。

测试场景

如果不使用 parameters 来进行参数化,那么我们的用例可能就是这样的:

- config:name: login testrequest:base_url: http://api.nnzhp.cn- test:name: login case 1request:url: /api/user/loginmethod: POSTheaders:Content-Type: application/x-www-form-urlencodedUser-Agent: Fiddlerdata:username: test1010passwd: aA123456validate:- eq: [status_code, 200]- eq: [content.error_code, 0]# 省略很多个 test- test:name: login case Nrequest:url: /api/user/loginmethod: POSTheaders:Content-Type: application/x-www-form-urlencodedUser-Agent: Fiddlerdata:username: test101012passwd: aA123456validate:- eq: [status_code, 200]- eq: [content.error_code, 0]

在上面的用例中,我们可能要写很多的 test ,在这些 test 中,除了 request-data 中 username 和 passwd 的值不一样,其他内容都完全一样。

当我们使用 parameters 来实现参数化后,我们只要写 1个test 就行了,避免了重复的脚本代码,同时脚本内容也变得更加简洁。

parameters参数化(一对一)

关键字 parameters 可以在 config 或 test 中使用,我们只以在 config 中使用 parameters 来进行说明。

注意:在 HttpRunner 1.5.11 之后的版本中,不再支持在 test 中使用 parameters 。

我们准备 3 组登录用的数据,其中,第1组和第3组是能正常登录的用户名和密码,第2组是错误的用户名和密码。
使用 parameters 如下:

parameters:- username-passwd:- ["niuhanyang", "aA123456"] # 正确的用户名密码- ["test10101", "fasdfasfa"] # 错误的用户名密码- ["test1010", "aA123456"] # 正确的用户名密码

然后,只保留一个 test 即可,并在 request-data 中引入参数,如下:

data:username: $usernamepasswd: $passwd

完整的YAML用例:

- config:name: parameters testrequest:base_url: http://api.nnzhp.cnparameters:- username-passwd:- ["niuhanyang", "aA123456"] # 正确的用户名密码- ["test10101", "fasdfasfa"] # 错误的用户名密码- ["test1010", "aA123456"] # 正确的用户名密码- test:name: login caserequest:url: /api/user/loginmethod: POSTheaders:Content-Type: application/x-www-form-urlencodedUser-Agent: Fiddlerdata:username: $usernamepasswd: $passwdvalidate:- eq: [status_code, 200]- eq: [content.error_code, 0]

运行用例,然后即可得到测试报告,如下:

C1

parameters参数化(多对一)

上面介绍的是用户名和密码一对一的情况,如果是 多对一 或 一对多 关系,比如 3 组登录用的数据中,用户名不一样,但密码都是相同的,这个时候,如果用上面的写法,就不太方便了。

对于这种情况,我们可以这样写:

parameters:- username: ["niuhanyang", "test10101", "test1010"]- passwd: ["aA123456"]

只需改动 config 中的 parameters ,其他内容都不需要修改。
运行用例后的报告如下:

C2

parameters参数化(多对多)

有时候,我们可能存在多对多的测试场景,即笛卡尔积的组合情况。如果有 3 个不同的用户名,2 个不同的密码,对于这种情况,使用笛卡尔积组合,就应该存在 2 * 3 = 6 种测试组合。

对于这种情况,我们可以这样写:

parameters:- username: ["niuhanyang", "test10101", "test1010"]- passwd: ["aA123456", "fasdfasfa"]

只需改动 config 中的 parameters ,其他内容都不需要修改。
运行用例后的报告如下:

C3

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

生活或许曲折艰难,但不要低头妥协。心怀勇气,胸怀梦想,逆风飞翔,追求辉煌。莫失信心,锐意前行,奋斗的脚步,铸就无限可能!

勇往直前,追求无限可能;不畏艰辛,扬帆破浪前行。梦想是航向成功的指南,奋斗是踏上巅峰的路途。坚持不懈,努力拼搏,每一次努力都是离梦想更近一步的距离!

无论前方多么曲折崎岖,挑战都是奋斗的契机。坚持热爱,拥抱变化,追求卓越成就。勇敢迈出每一步,用汗水浇灌梦想的花朵,绽放属于自己的辉煌人生!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat的一些配置问题(server.xml/catalina.sh)

在同一机器中运行多个Tomcat时,如果不修改server.xml的端口参数,会出现端口冲突使得Tomcat异常;Tomcat默认配置中,JAVA_OPTS不会设置太大,一般需要在catalina.sh中增加一行配置来加大该参数值。 目录 1.Server.xml配置…

有人真的会去分析代码吗

很早之前使用 webpack 的时候,也有类似的插件,分析打包出来之后的代码,分别是哪些模块比较庞大,针对打包的内容进行优化。说实话,知道归知道,但是没有哪个项目使用分析过。最近刚好看见了两个插件&#xff…

DOM的节点操作+事件高级+DOM事件流+事件对象

一.节点操作 1.父节点: node.parentNode 得到的是离元素最近的父级节点 2.子节点: parentNode.childNodes 所有的子节点 包含元素节点 文本节点等等parentNode.children (非标准) 获取所有的子元素节点,实际开发常用 parentNode.firstChild 获取…

clion run qt 问题汇总

一、Error copying file “D:/soft/QT/5.15.2/mingw81_64/bin/Qt5Cored.dll” to “D:/work/Ccode/qtproject/cmake-build-debug-qtmingw”.报错 查看路径下确实没有Qt5Cored.dll,只有Qt5Core.dll 注释掉cmakelist中的这三行 重新执行后成功 二、使用CLion编辑u…

前端探索之旅

目录 简介:内容大纲:第一章 前端开发简介1.1 前端开发的定义和作用1.2 前端开发的职责1.3 前端开发的技能要求1.4 前端开发的发展前景总结: 第二章 HTML基础2.1 HTML基本结构2.2 常见HTML标签和元素 第三章 CSS基础3.1 CSS基本语法3.2 常见CSS选择器3.3 常见CSS属性…

MySQL之 show profile 相关总结

MySQL之 show profile 相关总结 MySQL官网show profile介绍:https://dev.mysql.com/doc/refman/8.0/en/show-profile.html 1. 简介 show profile 和 show profiles 命令用于展示SQL语句的资源使用情况,包括CPU的使用,CPU上下文切换&#xf…

nvm下载node导致npm报错无法使用

有个依赖库需要更新下node,用nvm下载后项目跑不起来了,npm -v 还报错 其实一开始是npm下载不来,然后换了淘宝镜像后还是报错 然后就只能手动下载下了 进入node.js官网 https://nodejs.org/en/download 下载后注意要安装在你nvm目录中&#x…

windows安装apache-jmeter-5.6.2教程

目录 一、下载安装包(推荐第二种) 二、安装jmeter 三、启动jmeter 一、下载安装包(推荐第二种) 1.官网下载:Apache JMeter - Download Apache JMeter 2.百度云下载:链接:https://pan.baidu.…

【算法挨揍日记】day01——双指针算法_移动零、 复写零

283.移动零 283. 移动零https://leetcode.cn/problems/move-zeroes/ 题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 …

Xcode升级导致关联库报错

想办法找到对应的库 然后到 Build Phases -- LinkBinary With Libraries中点击,选择对应的framework即可,就像我工程的报错 Undefined symbol: _OBJC_CLASS_$_ADClient _OBJC_CLASS_$_ASIdentifierManager 缺失的库是AdSupport.framework 添加后再次编…

【服务平台】Rancher运行和管理Docker和Kubernetes,提供管理生产中的容器所需的整个软件堆栈

Rancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher,组织不再需要使用一套独特的开源技术从头开始构建容器服务平台。Rancher提供了管理生产中的容器所需的整个软件堆栈。  完整软件堆栈 Rancher是供采用容器的团…

Git全栈体系(五)

第八章 IDEA 集成 GitHub 一、设置 GitHub 账号 如果出现 401 等情况连接不上的,是因为网络原因,可以使用以下方式连接: 然后去 GitHub 账户上设置 token。 点击生成 token。 复制红框中的字符串到 idea 中。 点击登录。 二、分享工程…

数据结构顺序表

今天主要讲解顺序表,实现顺序表的尾插,头插,头删,还有尾删等操作,和我们之前写的通讯录的增删查改有类似的功能。接下来让我们开始我们的学习吧。 1.线性表 线性表(linear list)是n个具有相同特…

allegro中不可选时,如何对find进行可选操作

allegro出现不可选时,只能尝试其他单一的操作,但这样效率不高;可以通过菜单栏Display下拉菜单点击Element,即可实现FIND下选择需要调整的选项。

022 - STM32学习笔记 - 扩展外部SDRAM(一) - 初识SDRAM和FMC

022 - STM32学习笔记 - 扩展外部SDRAM(一) - 初识SDRAM和FMC 之前学习了I2C读写EEPROM和SPI读写FLASH,学完之后在学习一种新的存储介质–SDRAM。 一、初识SDRAM 我们知道在stm32内部是有一定大小的SRAM(256Kb)和FLA…

【Cartopy】库的安装和瓦片加载(天地图、高德等)

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 Cartopy基础入门 【Cartopy】库的安装和天地图瓦片加载 【Cartopy】【Cartopy】如何更好的确定边界显示 【Cartopy】【Cartopy】如何丝滑的加载Geojso…

100G光模块的应用案例分析:电信、云计算和大数据领域

100G光模块是一种高速光模块,由于其高速率和低延迟的特性,在电信、云计算和大数据领域得到了广泛的应用。在本文中,我们将深入探讨100G光模块在这三个领域的应用案例。 一、电信领域 在电信领域,100G光模块被广泛用于构建高速通…

机器学习深度学习——卷积的多输入多输出通道

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——从全连接层到卷积 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所帮…

4用opencv玩转图像2

opencv绘制文字和几何图形 黑色底图 显示是一张黑色图片 使用opencv画圆形 #画一个圆 cv2.circle(imgblack_img,center(400,400),radius100,color(0,0,255),thickness10) 画实心圆 只需要把thickness-1。 cv2.circle(imgblack_img,center(500,600),radius50,color(0,0,255),t…

Spark(39):Streaming DataFrame 和 Streaming DataSet 输出

目录 0. 相关文章链接 1. 输出的选项 2. 输出模式(output mode) 2.1. Append 模式(默认) 2.2. Complete 模式 2.3. Update 模式 2.4. 输出模式总结 3. 输出接收器(output sink) 3.1. file sink 3.2. kafka sink 3.2.1. 以 Streaming 方式输出数据 3.2.2. 以 batch …