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

Posted 爱学习de测试小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于02-Httprunner-测试用例结构介绍的主要内容,如果未能解决你的问题,请参考以下文章

unittest测试框架_1_基础介绍

1006数树11

go test 命令介绍

移动app测试

pytest的测试用例标记

javascript 性感日期桌面测试用例无头模式全部通过