02-Httprunner-测试用例结构介绍

测试用例结构介绍


前言

  • HttpRunner v3.x 支持3种用例格式:pytest、YAML和JSON;pytest、YAML和JSON格式的测试用例完全等价,可使用Yaml和Json用例生成pytest用例。

基础概念

  • 测试用例集(testsuite): 是测试用例的无序集合,集合中的测试用例应该都是相互独立,不存在先后依赖关系的。如果确实存在先后依赖关系怎么办,例如登录功能和下单功能。正确的做法应该是,在下单测试用例的前置步骤中执行登录操作。对应一个YAML/JSON/Python文件,包含单个或多个测试用例文件。
  • 测试用例(testcase): 测试用例是测试步骤的有序集合;应该是为了测试某个特定的功能逻辑而精心设计的,并且至少包含如下几点:
  • 明确的测试目的(achieve a particular software testing objective)
  • 明确的输入(inputs)
  • 明确的运行环境(execution conditions)
  • 明确的测试步骤描述(testing procedure)
  • 明确的预期结果(expected results)
  • 测试步骤(teststep): 测试用例是测试步骤的有序集合,而对于接口测试来说,每一个测试步骤应该就对应一个 API 的请求描述。对应YAML/JSON/Python中 teststeps下的一个节点,描述单次接口测试的全部内容,包括发起接口请求、解析响应结果、检验结果等。

config

  • 每个测试用例都必须有config部分,可以配置用例。
属性名称是否必填作用
name必填指定测试用例名称。这将显示在执行日志和测试报告中。
base_url可选如果base_url指定,则 teststep 中的 url 可以设置相对路径部分
verify可选https请求时,是否校验证书,默认True,忽略证书校验可以设置为False
variables可选定义的全局变量,作用域为整个用例。每个测试步骤都可以引用config variables。也就是说,step variables 优先级高于 config variables.
parameters可选全局参数,用于实现数据化驱动,作用域为整个用例。
export可选指定输出的测试用例变量。将每个测试用例看作一个黑盒,config variables是输入变量,config export是输出变量。当一个测试用例在另一个测试用例的步骤中被引用时,config export将被提取并在随后的测试步骤中使用。
config:
    name: login
    variables:              # 配置变量(config variables)
        varA: "configA"
        varB: "configB"
        varC: "configC"
    parameters:             # 参数变量(parameter variables)
        varA: ["paramA1"]
        varB: ["paramB1"]
    base_url: "https://postman-echo.com"
    verify: False
    export: ["foo3"]

teststeps:
-
    name: step 1
    ...
-
    name: step 2
    ...

teststeps

  • 每个测试用例都有1个或多个测试步骤(List[step]),每个测试步骤对应一个API请求或其他用例的引用
属性名称是否必填作用
name必填指定测试步骤名称
request必填指定测试步骤变量,参数引用变量"$变量名"
variables可选指定测试步骤变量,参数引用变量"$变量名"
extract可选提取返回结果
export可选导出的测试用例会话变量,设为全局变量
validate可选校验返回结果
hooks可选请求钩子
testcase可选指定引用的测试用例
teststeps:
-
    name: get with params
    variables:
        foo1: bar11
        foo2: bar21
        sum_v: "${sum_two(1, 2)}"
    request:
        method: GET
        url: /get
        params:
            foo1: $foo1
            foo2: $foo2
            sum_v: $sum_v
        headers:
            User-Agent: HttpRunner/${get_httprunner_version()}
    extract:
        foo3: "body.args.foo2"
    validate:
        - eq: ["status_code", 200]
        - eq: ["body.args.foo1", "bar11"]
        - eq: ["body.args.sum_v", "3"]
        - eq: ["body.args.foo2", "bar21"]
	export:
        - foo3
	testcase: testcases/demo_testcase_request.yml
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习de测试小白

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值