首页 > 其他分享 >httprunner 4.x学习 - 2.测试用例结构(testcase)

httprunner 4.x学习 - 2.测试用例结构(testcase)

时间:2023-05-05 11:11:56浏览次数:45  
标签:body httprunner 测试步骤 testcase 测试用例 eq foo1 foo2

前言

httprunner 4.x 版本,YAML/JSON 格式用例(testcase)结构延续了之前的config 和 teststeps 两个部分

config 配置部分

config 部分示例

config:
    name: "request methods testcase with functions"
    variables:
        foo1: config_bar1
        foo2: config_bar2
        expect_foo1: config_bar1
        expect_foo2: config_bar2
    headers:
        User-Agent: ${get_user_agent()}
    verify: False
    export: ["foo3"]

每个测试用例都应该有一个config部分,您可以在其中配置测试用例级别的设置,有以下属性

属性名称 是否必填 作用
name 必填 指定测试用例名称。这将显示在执行日志和测试报告中。
base_url 可选 如果base_url指定,则 teststep 中的 url 可以设置相对路径部分
verify 可选 https请求时,是否校验证书,默认True,忽略证书校验可以设置为False
headers 可选 公共请求头部
variables 可选 指定测试用例的公共变量。每个测试步骤都可以引用未在步骤变量中设置的配置变量。换句话说,步骤变量比配置变量具有更高的优先级。
export 可选 (早期版本用的output)指定导出的测试用例会话变量,把变量暴露出来,设置为全局变量
parameters 可选 参数化设置,对整个文件生效

除了上面的一些自动化会用到的参数,4.x 版本新增了一些关键字

属性名称 是否必填 作用
parameters_setting 可选 配置参数驱动的具体策略
think_time 可选 设置思考时间,性能测试用到
websocket 可选 设置 WebSocket 断开重连的最大次数和间隔等(todo)
weight 可选 性能测试用到,分配给当前测试用例的虚拟用户权重
environs 可选 配置环境变量(如果未指定则会从 .env 文件导入)
path 可选 当前测试用例所在路径(通常不需要手工填写)

teststep 测试步骤

每个用例可以有多个测试步骤,每个步骤可以看成是一个接口的请求,发送 http 协议接口,可以用到request 关键字,相关参数和requests 库的参数完全一致。

测试步骤 teststep 常用的一些基本关键字

测试步骤类型 含义
name 步骤名称
request 用于发起 HTTP 请求的步骤类型
api 用于引用 API 的步骤类型
testcase 用于引用其他测试用例的步骤类型

每个步骤可以加变量,前置/后置,以及 提取和校验相关操作
| 测试步骤类型 |作用 |适用的测试步骤|
| variables | 局部变量 | 通用 |
| setup_hooks | 前置函数 | request/api/websocket |
| teardown_hooks | 后置函数 | request/api/websocket |
| extract | 参数提取 | request/api/websocket |
| validate | 结果校验 | request/api/websocket |
| export | 导出变量 | testcase |

httprunner4.x 版本新增的一些关键字
| 测试步骤类型 | 含义 |
| transaction | 用于定义一个事务 |
| rendezvous | 集合点 |
| think_time | 思考时间 |
| websocket | 用于发起 WebSocket 请求的步骤类型 |

teststep 部分使用示例

teststeps:
-
    name: get with params
    variables:
        foo1: ${ENV(USERNAME)}
        foo2: bar21
        sum_v: "${sum_two_int(10000000, 20000000)}"
    request:
        method: GET
        url: $base_url/get
        params:
            foo1: $foo1
            foo2: $foo2
            sum_v: $sum_v
    extract:
        foo3: "body.args.foo2"
    validate:
        - eq: ["status_code", 200]
        - eq: ["body.args.foo1", "debugtalk"]
        - eq: ["body.args.sum_v", "30000000"]
        - eq: ["body.args.foo2", "bar21"]
-
    name: post raw text
    variables:
        foo1: "bar12"
        foo3: "bar32"
    request:
        method: POST
        url: $base_url/post
        headers:
            Content-Type: "text/plain"
        body: "This is expected to be sent back as part of response body: $foo1-$foo2-$foo3."
    validate:
        - eq: ["status_code", 200]
        - eq: ["body.data", "This is expected to be sent back as part of response body: bar12-$expect_foo2-bar32."]
-
    name: post form data
    variables:
        foo2: bar23
    request:
        method: POST
        url: $base_url/post
        headers:
            Content-Type: "application/x-www-form-urlencoded"
        body: "foo1=$foo1&foo2=$foo2&foo3=$foo3"
    validate:
        - eq: ["status_code", 200]
        - eq: ["body.form.foo1", "$expect_foo1"]
        - eq: ["body.form.foo2", "bar23"]
        - eq: ["body.form.foo3", "bar21"]

测试用例(testcase)

一条测试用例(testcase)应该是为了测试某个特定的功能逻辑而精心设计的,并且至少包含如下几点:

  • 明确的测试目的(achieve a particular software testing objective)
  • 明确的输入数据(inputs)
  • 明确的运行环境(execution conditions)
  • 明确的测试步骤描述(testing procedure)
  • 明确的预期结果(expected results)

按照上述的测试用例定义,HttpRunner 的测试用例应该保证是完整并且可以独立运行的。

从测试用例的组成结构来看,一个测试用例可以分为「测试脚本」和「测试数据」两部分:

  • 测试脚本:重点是描述测试的业务功能逻辑,包括预置条件、测试步骤、预期结果等,并且可以结合辅助函数(debugtalk.go/debugtalk.py)实现复杂的运算逻辑
  • 测试数据:重点是对应测试的业务数据逻辑,例如数据驱动文件中的定义的 UUID、用户名等等,以及环境配置文件中定义的 base_url 环境变量等等

标签:body,httprunner,测试步骤,testcase,测试用例,eq,foo1,foo2
From: https://www.cnblogs.com/yoyoketang/p/17373547.html

相关文章

  • TPT19新特性之形式化需求:自动生成测试用例
     在测试形式化需求的主题上,我们又向前迈进了一步。 如今,已经可以使用TPT自动评估形式化需求。在TPT19中,相应的测试数据现在可以一键生成。 这还在测试中吗?是的,但是完全自动并且不需要创建复杂的测试用例。 这适用于哪种测试对象呢? 适用于可以使用TPT测试的所......
  • Httprunner4.x-02-运行测试项目
    安装环境:pip3installhttprunner遇到问题:subprocess-exited-with-error解决方法:pipinstall--upgradesetuptools ......
  • 交个朋友HttpRunnerV4.x 01-初次见面
     背景:Pytest是纯接口的自动化框架。而HttpRunner一款开源测试平台,可以实现接口测试/压力测试DevOps/数字体验监测。那交个新朋友HttpRunner学习下。 米哈游-平台部、有米科技-测试与工程质量保障部、通用环球医疗-环球健康等客户案例在使用HttpRunner框架。 为什么......
  • 入门3-Pytest测试用例运行方式(1)Main方法运行
    通过主函数main方式执行If__name__== ‘__main__’:  Pytest.main({“--vs”})一般run.py里用main()方法,里边可以加参数 ......
  • 注册功能测试用例
    PC端注册界面往往需要输入用户名、密码、验证码,通用的注册测试用例有以下几点:需求:(1)账号:必填,11位手机号进行注册(2)验证码:必填,系统生成4位验证码(3)用户名:可以为空,4-16位字符串(可以重复)(4)密码:必填,6-12位,由(字母、数字)组成,允许含特殊符号测试点用例标题操作步骤预期......
  • 登录功能常用测试用例
    PC端登录界面往往需要输入用户名、密码、验证码,通用的登录测试用例有以下几点:测试点用例标题操作步骤预期结果正常登录输入正确的用户名和正确的密码,检查登录情况1、输入正确的用户名2、输入正确的密码3、输入验证码4、点击【登录】成功登录正常登录检验Tab键......
  • 自动化测试用例如何编写
    自动化测试脚本什么是自动化测试?自动化测试是验证和验证软件是否满足所有用户需求,并使用自动化工具按预期运行。它检查在产品开发阶段期间和之后出现的错误、问题和其他类型的缺陷。这种类型的软件测试运行在由测试工具处理的编程脚本上。有多种测试工具,它们要么提供基于代码的平台......
  • 01-Httprunner简介、安装及基本使用教程
     https://www.jb51.net/article/237541.htm httprunner是一款面向 HTTP(S) 协议的通用测试框架。只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求,本文给大家介绍Httprunner安装使用教程,感兴趣的朋友一起看看吧......
  • 02-httprunner创建脚手架报错解决方法:httprunner: error: invalid choice: ‘startpro
      转载:https://blog.csdn.net/qq_33940095/article/details/128191841安装完httprunner版本4.1.3后进行创建脚手架是报错  经过百度发现是与python(3.7.6)版本不匹配.卸载httprunner重新安装低版本的httprunner卸载:pipuninstallHttpRunner  ......
  • 测试用例id命名规则
    测试用例ID:测试用例编号自行命名,使用英文和数字以及下划线,不得重复,格式为:特性命名规则:tc_一级特性(英文)_二级特性(英文)_三级特性(英文)_0X(01-99)_00X(001-999)功能格式为:fc_一级特性(英文)_二级特性(英文)_三级特性(英文)_0X(01-99)_00X(001-999) 产品特性简介:产品的特性是指产品所具......