专栏首页从零开始学自动化测试httprunner 2.x学习5-测试用例集(testsuite)

httprunner 2.x学习5-测试用例集(testsuite)

前言

httprunner 分层主要是分三层:api、testcase、testsuites 前面讲分层的时候讲到api单独封装每个接口,testcase可以有多个测试步骤,调用api层的接口是写测试用例,用例的步骤是有序的。 testsuites 这一层是测试用例的集合,把测试用例放到一个测试套件去执行,用例执行应该是无序的,有依赖的场景在testcase这一层测试用例里面就已经按步骤写好了。

测试用例集(testsuite)

当测试用例数量比较多以后,为了方便管理和实现批量运行,通常需要使用测试用例集来对测试用例进行组织。

在前文的测试用例分层模型中也强调了,测试用例集(testsuite)是测试用例的 无序 集合,集合中的测试用例应该都是相互独立,不存在先后依赖关系的;如果确实存在先后依赖关系,那就需要在测试用例中完成依赖的处理。

因为是 无序 集合,因此测试用例集的描述形式会与测试用例有些不同,在每个测试用例集文件中,第一层级存在两类字段:

  • config: 测试用例集的总体配置参数
  • testcases: 值为字典结构(无序),key 为测试用例的名称,value 为测试用例的内容;在引用测试用例时也可以指定 variables,实现对引用测试用例中 variables 的覆盖。

非参数化场景

api 层两个接口api/login.yml

# api/login.yml
# 上海-悠悠,httprunner QQ交流群:1121184576
name: login first
base_url: http://127.0.0.1:8000
variables:
    user: test
    password: 123456
request:
        url: /api/v1/login/
        method: POST
        headers:
            Content-Type: application/json
            User-Agent: python-requests/2.18.4
        json:
            username: $user
            password: $password
validate:
    - eq: [status_code, 200]
    - eq: [headers.Content-Type, application/json]
    - eq: [content.msg, login success!]
    - eq: [content.code, 0]

api/get_userinfo.yml 内容

# api/get_userinfo.yml
# 上海-悠悠,httprunner QQ交流群:1121184576

name: get user info case1
base_url: http://127.0.0.1:8000
variables:
    token: 1c5ef1856edec117ac989eb8def4abbaae28673e
request:
    url: /api/v1/userinfo/
    method: GET
    headers:
        Content-Type: application/json
        User-Agent: python-requests/2.18.4
        Authorization: Token $token          # 引用token

case用例层,写一个登录用例

# case/test_login.yml
# 上海-悠悠,httprunner QQ交流群:1121184576
- config:
    name: "test userinfo"

- test:
    name: login-setup
    api: api/login.yml
    extract:
        - get_token: content.token
    validate:
        - eq: ["status_code", 200]
        - len_eq: ["content.token", 40]

testsuites 层可以把测试用例放一起执行

config:
    name: 创建测试计划
    base_url: http://127.0.0.1:8000

testcases:
    用户test1登陆:
        testcase: case/test_login.yml
        variables:
            user: test1
            password: 123456

    用户test2登陆:
        testcase: case/test_login.yml
        variables:
            user: test2
            password: 123456

注意 testsuites 这一层必须是引用 testcase ,不能直接引用 api

本文分享自微信公众号 - 从零开始学自动化测试(yoyoketang),作者:上海悠悠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • httprunner学习9-完整的用例结构(yaml&json)

    前面几篇零散的学了一些httprunner的知识点,那么一个完整的 YAML/JSON 用例文件包含哪些关键字呢?

    上海-悠悠
  • Selenium2+python自动化60-异常后截图(screenshot)

    前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据。 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,...

    上海-悠悠
  • httprunner 2.x学习4-测试用例分层

    httprunner 2.x版本最大的改进就是分层机制了,1.x的版本是线性设计的,每个用例都是独立的。 一个用例里面涉及到流程性的,我们测试修改个人信息是否修...

    上海-悠悠
  • 精准测试及其工具(连载9)

    精准测试云平台采用“一种基于测试用例与代码逻辑、源码版本关系矩阵的测试用例选取方法”的回归技术,在回归测试时,基于智能算法,完全自动筛选计算出每个测试用例受影...

    小老鼠
  • 测试用例概念 原则

    测试用例为一组条件或变量,根据其来确定应用软件是否能够正常的工作。其条件和变量为测试用例。

    mySoul
  • 精准测试及其工具(连载10)

    精准测试云平台根据测试用例的运行情况和测试用例覆盖到的函数这些信息,通过一定的计算,可确定每个函数可能存在缺陷的可疑度,然后针对可疑度较大的函数进行查看,可快速...

    小老鼠
  • 编写测试用例的技巧

    测试用例是任何测试周期的第一步,对任何项目都非常重要。如果在此步骤中出现任何问题,则在整个软件测试过程中都会扩大影响。如果测试人员在创建测试用例模板时使用正确的...

    八音弦
  • 怎么的测试用例是一个好的测试用例?

    众所周知,测试用例就是用来评估软件系统是否满足了一系列的商业需求而存在的。那么,如果使用了不好的或者是冗余的测试用例无疑就浪费的宝贵的工期,也浪费了公司的成本。...

    Criss@陈磊
  • 编写测试用例的技巧

    测试用例是任何测试周期的第一步,对任何项目都非常重要。如果在此步骤中出现任何问题,则在整个软件测试过程中都会扩大影响。如果测试人员在创建测试用例模板时使用正确的...

    软测小生
  • 接口测试4

    该测试案例是以一个B/S结构的登录功能点为被测对象,该测试用例为黑盒测试用例。假设用户使用的浏览器为IE6.0 SP4。

    用户6367961

扫码关注云+社区

领取腾讯云代金券