httprunner2,名词解释

名词解释

teststep测试步骤

测试用例是测试步骤的有序集合

接口测试来说,每一个测试步骤,对应一个 API 的请求描述

testcase测试用例

一条测试用例(testcase)测试某个特定的功能,至少包含

测试目的(achieve a particular software testing objective)

输入(inputs)

运行环境(execution conditions)

测试步骤描述(testing procedure)

预期结果(expected results)

对应地,httprunner 的测试用例描述方式进行如下设计:

测试用例应该是完整且独立的,每条测试用例应该是都可以独立运行的;在 httprunner 中,每个 yaml/json 文件对应一条测试用例。

测试用例包含 测试脚本 和 测试数据 两部分:

测试用例 = 测试脚本 + 测试数据

测试脚本 重点是描述测试的 业务功能逻辑,包括预置条件、测试步骤、预期结果等,并且可以结合辅助函数(debugtalk.py)实现复杂的运算逻辑;可以将 测试脚本 理解为编程语言中的 类(class)

测试数据 重点是对应测试的 业务数据逻辑,可以理解为类的实例化数据;

测试数据 和 测试脚本 分离后,就可以比较方便地实现数据驱动测试,通过对测试脚本传入一组数据,实现同一业务功能在不同数据逻辑下的测试验证。

testsuite测试套件

测试用例集是测试用例的无序 集合,集合中的测试用例应该都是相互独立,不存在先后依赖关系的。

如果确实存在先后依赖关系怎么办,例如登录功能和下单功能。正确的做法应该是,在下单测试用例的前置步骤中执行登录操作。

config:

    name: "request methods testcase: reference testcase"

teststeps:

-

    name: step1

    testcase: testcases/login.yml

-

    name: step2

    api: api/add_cart.yml

-

    name: step3

    api: api/make_order.yml

测试场景

测试场景 和 测试用例集 是同一概念,都是 测试用例 的 无序 集合。

    接口

    测试用例集

    参数

    变量

    测试脚本(yaml/json)

    debugtalk.py

    环境变量

debugtalk.py项目配置

基于约定大于配置的原则,每个项目有且只有一个debugtalk.py,该文件拥有多种功能。

作为项目根路径的锚,测试用例中的相对路径(例如使用测试用例或CSV文件)都基于此根路径。

存储自定义的python函数,在测试用例中调用的函数均在此文件中定义

变量作用域和优先级

变量作用域

config测试用例全局配置

包含base_url,verify,variables,export

teststeps测试步骤列表

每个步骤都对应一个API请求或另一个用例的使用

variables/extract/validate/hooks支持创建及其复杂的测试用例。

测试步骤的变量空间会继承或覆盖config中定义的内容

若某变量在config中定义了,在某test中没有定义,则该test会继承该变量

若某变量在config和某test中都定义了,则该test中使用自己定义的变量值

各个测试步骤的变量空间相互独立,互不影响

如需在多个测试步骤中传递参数值,则需要使用extract关键字,只能从前往后传递

测试用例的优先级

config:

    name: xxx

    variables:              # 配置变量(config variables)

        varA: "configA"

        varB: "configB"

        varC: "configC"

    parameters:             # 参数变量(parameter variables)

        varA: ["paramA1"]

        varB: ["paramB1"]

teststeps:

-

    name: step 1

    variables:              # 测试步骤变量(step variables)

        varA: "step1A"

    request:

        url: /$varA/$varB/$varC # varA="step1A", varB="paramB1", varC="configC"

        method: GET

    extract:                # 提取变量(extract variables)

        varA: body.data.A   # 假设 varA="extractVarA"

        varB: body.data.B   # 假设 varB="extractVarB"

-

    name: step 2

    varialbes:

        varA: "step2A"

    request:

        url: /$varA/$varB/$varC # varA="step2A", varB="extractVarB", varC="configC"

        method: GET

这个测试用例变量优先级

    step variables > extract variables, 例如:step 2, varA="step2A"

    parameter variables > config variables, 例如:step 1, varB="paramB1"

    extracted variables > parameter variables > config variables, 例如:step 2, varB="extractVarB"

    config variables的优先级最低,例如:step 1/2, varC="configC"

测试套件的优先级

config:

    name: xxx

    variables:                  # testsuite config variables

        varA: "configA"

        varB: "configB"

        varC: "configC"

testcases:

-

    name: case 1

    variables:                  # testcase variables

        varA: "case1A"

    testcase: /path/to/testcase1

    export: ["varA", "varB"]    # export variables

-

    name: case 2

    varialbes:                  # testcase variables

        varA: "case2A"

    testcase: /path/to/testcase2

这个测试套件变量优先级

    测试用例变量(testcase variables) > export variables > testsuite config variables > 被使用用例配置变量(referenced testcase config variables)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值