一文看懂 HttpRunner 测试用例分层机制

testcases:
    create user 1000 and check result.:
        testcase: testcases/create_user.yml
        variables:
            uid: 1000
            var_c: ${gen_random_string(5)}
            var_d: $var_c

    create user 1001 and check result.:
        testcase: testcases/create_user.yml
        variables:
            uid: 1001
            var_c: ${gen_random_string(5)}
            var_d: $var_c

参数化场景(parameters)

对于参数化场景,可通过 parameters 实现,描述形式如下所示。

config:
    name: create users with parameters
    variables:
        device_sn: ${gen_random_string(15)}
    base_url: "http://127.0.0.1:5000"

testcases:
    create user $uid and check result for $device_sn.:
        testcase: testcases/create_user.yml
        variables:
            uid: 1000
            device_sn: TESTSUITE_XXX
        parameters:
            uid: [101, 102, 103]
            device_sn: [TESTSUITE_X1, TESTSUITE_X2]

参数化后,parameters 中的变量将采用笛卡尔积组合形成参数列表,依次覆盖 variables 中的参数,驱动测试用例的运行。

文件目录结构管理 && 脚手架工具

在对测试用例文件进行组织管理时,对于文件的存储位置均没有要求和限制,在引用时只需要指定对应的文件路径即可。但从约定大于配置的角度,最好是按照推荐的文件夹名称进行存储管理,并可通过子目录实现项目模块分类管理。

总结如下:

  • debugtalk.py 放置在项目根目录下,假设为 PRJ_ROOT_DIR
  • 接口定义(API)放置在 PRJ_ROOT_DIR/api 目录下
  • 测试用例(testcase)放置在 PRJ_ROOT_DIR/testcases 目录下
  • 测试用例集(testsuite)文件必须放置在 PRJ_ROOT_DIR/testsuite 目录下

目录结构如下所示:

$ tree tests
tests
├── api
│   ├── create_user.yml
│   ├── get_headers.yml
│   ├── get_token.yml
│   ├── get_user.yml
│   └── reset_all.yml
├── debugtalk.py
├── testcases
│   ├── create_user.yml
│   ├── deps
│   │   └── check_and_create.yml
│   └── setup.yml
└── testsuites
    ├── create_users.yml
    └── create_users_with_parameters.yml

同时,在 HttpRunner 中实现了一个脚手架工具,可以快速创建项目的目录结构。该想法来源于 Django 的 django-admin.py startproject project_name。

使用方式也与 Django 类似,只需要通过 --startproject 指定新项目的名称即可。

$ hrun --startproject demo
Start to create new project: demo
CWD: /Users/debugtalk/MyProjects/examples

created folder: demo
created folder: demo/api
created folder: demo/testcases
created folder: demo/testsuites
created folder: demo/reports
created file: demo/debugtalk.py
created file: demo/.env

上一页123下一页


留言