接口自动化测试,HttpRunner框架参数化进阶实战,你要的都有...

news2024/11/17 17:24:48

目录:导读

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


前言

1、获取返回包数据

在提取参数时,当 HTTP 的请求响应结果为 JSON 格式,则可以采用.运算符的方式,逐级往下获取到参数值;

响应结果的整体内容引用方式为 content 或者 body,如上面的content.errorCode

2、调用其他接口返回值

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

extract:
    token: content.token

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

token: $token

3、yml文件

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

4、设置全局变量并引用

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

variables:
    device_sn: FwgRiO7CNA50DSU

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

device_sn: $device_sn

5、调用函数

定义函数
debugtalk.py中编写函数

调用函数

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

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

6、参数化驱动(最简单的方式)

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

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

引用参数

关键字:$参数名
$user_id

7、参数化驱动(复杂的方式)

注意:从 1.5.11 版本开始,HttpRunner 不再支持测试步骤(teststep)层级的参数化数据驱动,只支持测试用例(testcase)层级的参数化驱动配置。

支持的参数化方式有3中

参数名称的定义分为两种情况:
独立参数单独进行定义;
多个参数具有关联性的参数需要将其定义在一起,采用短横线(-)进行连接。

数据源指定支持三种方式:
在 YAML/JSON 中直接指定参数列表;
通过内置的 parameterize(可简写为P)函数引用 CSV 文件;
调用 debugtalk.py 中自定义的函数生成参数列表;

在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文件

使用参数

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

8、使用指定的报告模板+指定报告生成路径

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

9、保存测试过程数据

以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:测试报告生成前的数据结构内容。

10、单独使用HttpRunner

新建.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)
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有拼尽全力、追求卓越,才能在人生道路上走得更远。坚定信念,永不放弃,努力向前,就能够攀登巅峰,创造属于自己的辉煌。让我们勇往直前,不断挑战自我,成就更加出色的自己!

每一天都是一个新的开始,不要让昨天的失败拖累今天的进步。保持积极向上的心态,时刻警醒自己不断学习和成长,只要坚持不懈,你就能超越自我,实现梦想!

每一天都是崭新的开始,不要让昨日的失败牵扯你前进的步伐。坚持努力,即便路途艰难,也要脚踏实地向目标迈进,只有这样才能最终实现自己的梦想。

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

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

相关文章

浅谈WDM与OTN——光传输大容量技术

前言 网络发展到今天,无论是在哪个国家和地区都离不开互联网,互联网的发展给人们的生活带来了极大的便利,但是同时也带来了网络传输容量不足的问题。而在这些网络传输当中,光纤网络无疑是最为成熟以及普及的技术之一,…

网络安全的学习建议!

下面是一些学习网络安全的建议: 1、多请教有经验的人 忌钻牛角尖,特别是刚入门的什么都不了解的情况下,可能你花好几天研究的一个东西,人10分钟就能搞定,一定不要做闷葫芦,有问题多问,遇到问题…

js数据类型有哪些

数据类型是计算机语言的基础知识,数据类型广泛用于变量、函数参数、表达式、函数返回值等场合。 JavaScript 规定了八种数据类型:未定义 (Undefined),空 (Null),数字 (Number),字符串 (String),布尔值 (Bo…

【linux】在Ubuntu下部署nginx——nginx的反向代理

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

【头歌-Python】9.2 能带曲线绘制(project) 第1~3关

第1关:能带曲线绘制一 任务描述 本关任务:使用matplotlib绘制图形。 相关知识 为了完成本关任务,你需要掌握: 使用 matplotlib 绘制图形python 读取文件 python 读取文件 python读取文件可以用以下函数实现: # …

【MySQL高级篇笔记-MySQL事务日志(下) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、redo日志 1、为什么需要REDO日志 2、REDO日志的好处、特点 3、redo的组成 4、redo的整体流程 5、redo log的刷盘策略 6、不同刷盘策略演示 流程图 7、写入redo log buffer 过程 1.补充概念:Mini-Transaction…

Linux防火墙学习笔记10

iptables的拓展匹配: icmp模块的使用方法: iptables -t filter -I INPUT -p icmp -m icmp --icmp-type echo-reply -j ACCEPT 说明:回应 我能ping通别人,别人ping不通我。 iprange模块的作用: iptables -t filter…

常见网络协议汇总

常见的网络协议有:TCP/IP协议、UDP协议、HTTP协议、FTP协议等,本文就详细的介绍一下常见的网络协议,通过这些具体的协议更深刻的认识整体网络的传输流程及相关网络原理,感兴趣的可以了解一下。 前言 本篇博客将对基于 计算机网络五层模型 中…

bff服务编排

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

工具应用问题处理

目录 eclipseIdea eclipse 更改eclipse字体: window - Preferences - General --> Appearance --> Colors and Fonts - Java–>Java Editors Text Font(set to default:Text Font) 在弹出的窗口选择要更改的字体样式 点击确定,最后apply即可 …

Java企业级信息系统开发学习笔记(4.3) Spring Boot两种全局配置和两种注解

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/Z2viP】 文章目录 一、Application.properites配置文件1.1 创建Spring Boot的Web项目ProperitesDemo1.2 在应用属性文件里添加相关配置1. 配置服务器端口号和web虚拟路径2. 对象类型的配置与使用&…

seata启动报错

目录 一、说是druid连接失败的问题 二、有可能也是因为内存不足, 我遇到的问题如下: INFO --- [ctionPool-Create-18213909] com.alibaba.druid.pool.DruidDataSource : put physical connection to pool failed. 一、说是druid连接失败的问题 厚礼…

做项目的时候大量需求测不过来怎么破?

互联网测试少,测试研发比大概在1:5,再加上产品再使足了劲上需求,导致了测试需求量大,测试准备时间短,从而降低了上线质量。那么如何解决呢?测试是质量负责人,要对平台质量负责,于是就…

Cesium 实战 - 气泡框跟随飞行

Cesium 实战 - 气泡框跟随飞行 Cesium 气泡框跟随气泡框在线示例 气泡框在地图中非常常用,尤其是二维地图中;而在三维地图中经常会用广告牌、标牌等作为气泡框使用。 广告牌(billboard)虽然方便,但是不支持富文本&…

Mysql数据库基础和增删改查操作(每一次「欢喜」都值得纪念)

文章目录 一、数据库基本概念数据表数据库数据库管理系统(DBMS)数据库系统 二、数据库类型和常用数据库1.关系型数据库2.非关系型数据库 三、数据库的数据类型四、SQL语句1.简介2.分类 五、SQL语句的使用1.数据库操作(1)创建数据库 2.数据库表操作&#…

【笔试强训选择题】Day24.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

窥探系列之数字证书

资料 华为数字证书解读 彻底搞懂HTTPS的加密原理 解读 使用过程 首先,证书持有者拥有一对公私钥;CA机构验证证书申请人身份后,使用CA机构私钥(属于根证书,一般浏览器保有CA的根证书公钥)对申请人的基本信息及公钥进…

如何管理与改进低质供应商?帮助供应商提升自身质量能力?

管理和改进低质量的供应商可能是一项具有挑战性的任务,但与他们合作以提高他们的能力是可能的。可以采取一些步骤来管理和帮助提高供应商的质量: 确定根本原因:了解供应商产品或服务质量低下的原因。对他们的流程、资源和能力进行全面评估&am…

测试不到3年,来面试开口要25K,面完连10K都不想给

前言 我的好朋友兼大学同学老左家庭经济情况不错,毕业之后没两年自己存了点钱加上家里的支持,自己在杭州开了一家网络公司。由于公司不是很大所以公司大部分的测试人员都是自己面试的,近期公司发展的不错,打算扩招也面试了不少人…

聊一聊近期测试行情以及个人的感受

众所周知,去年年底的裁员潮再加上今年的疫情影响,失业、找工作成为了蛮多人的当务之急。最近一些招聘网站也出现被刷爆的情况,其中顺利找到工作的并不多,说明行情很冷,但是总有许多人顺利跳槽。 其实对于大牛来说&…