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


前言

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性能测试

请添加图片描述

九、总结(尾部小惊喜)

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

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

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

猜你喜欢

转载自blog.csdn.net/x2waiwai/article/details/131187975