httprunner学习实践(四)--testcases的编写

序言

httprunner的使用和其中的一些概念在官方的文档中已经详细说明,写这个学习记录是为了记录下自己的学习历程,能够在今后快速的深入学习和实践。没有提及的部分,请查看官方文档
版本:2.2.5

参考

HttpRunner V2.x 中文使用文档

testcases的编写 ¶

testcase是包含多个测试步骤的集合。每一个测试步骤是一次请求,各个测试之间可能有相同的请求参数,他们相互关联,又有顺序依赖。
测试用例register.yml中可以只有一个请求

- test:
    name: 开发者注册
    request:
        method: POST
        url: https://api.apiopen.top/developerRegister
        data:
            name: o_chen
            passwd: 123456
            email: [email protected]
    validate:
        - eq: [content.code,200]

多个请求之前存在关联关系

测试用例user_register.yml中多个请求之前存在关联关系
开发者登录,获取apikey,用户注册是需要传入apikey

- test:
    name: 开发者登录
    request:
        method: POST
        url: https://api.apiopen.top/developerLogin
        data:
            name: o_chen
            passwd: 123456
    extract:
        apikey: content.result.apikey
    validate:
        - eq: [content.code,200]
- test:
    name: 用户注册
    request:
        method: POST
        url: https://api.apiopen.top/registerUser
        data:
            apikey: $apikey
            name: user1
            passwd: 123456
            nikeName: user1
    validate:
        - eq: [content.code,200]

公共处理的config

将请求中公有的部分可以独立出来,写入到config

- config:
    name: 开发者登录后注册
    base_url: https://api.apiopen.top
    variables:
        developer_name: o_chen
        passwd: 123456
        success_code: 200


- test:
    name: 开发者登录
    request:
        method: POST
        url: /developerLogin
        data:
            name: $developer_name
            passwd: $passwd
    extract:
        apikey: content.result.apikey
    validate:
        - eq: [content.code,$success_code]
- test:
    name: 用户注册
    request:
        method: POST
        url: /registerUser
        data:
            apikey: $apikey
            name: user2
            passwd: $passwd
            nikeName: user2
    validate:
        - eq: [content.code,$success_code]

独立的api接口

将请求独立到api中,方便在不同的用例中引用,api编写接口时,动态的参数以变量的形式编写,每个api尽可能的能够单独调用成功。在测试用例中通过关键字api引用接口的yaml文件
开发者登录接口

name: 开发者登录
base_url: https://api.apiopen.top
variables:
   developer_name: o_chen
   passwd: 123456
   success_code: 200
request:
   method: POST
   url: /developerLogin
   data:
       name: $developer_name
       passwd: $passwd
extract:
   apikey: content.result.apikey
validate:
   - eq: [content.code,$success_code]

用户注册接口

name: 用户注册
base_url: https://api.apiopen.top
variables:
    user_name: user0
    passwd: 123456
    success_code: 200
request:
    method: POST
    url: /registerUser
    data:
        apikey: $apikey
        name: $user_name
        passwd: $passwd
        nikeName: $user_name
extract:
    apikey: content.result.apikey
validate:
    - eq: [content.code,$success_code]

用例中引用接口

- config:
    name: 开发者登录后注册
    base_url: https://api.apiopen.top
    variables:
        developer_name: o_chen
        passwd: 123456
        success_code: 200


- test:
    name: 开发者登录
    api: api/apiopen/developer_login.yml
- test:
    name: 用户注册 user3
    api: api/apiopen/register_user.yml
    variables:
        user_name: user3
- test:
    name: 用户注册 user4
    api: api/apiopen/register_user.yml
    variables:
        user_name: user4
- test:
    name: 用户注册 user5
    api: api/apiopen/register_user.yml
    variables:
        user_name: user5

用例中引用testcase

teststeps:
-
    testcase: testcases/sale/login.yml
    output:
        - token
-
    testcase: testcases/sale/order_list.yml
    output:
        - orderList

其中,output输入的是变量名称,将引入的子测试用例中的变量添加到当前的测试用例中。output关键字也可以写在子测试用例的config节点中。同时在运行时会把变量打印出来。

testcase中的优先级

base_url

testcase test > testcase config > testsuite test > testsuite config > api

variables

testcase config > testcase test > testcase_def config > testcase_def test > api

verify

testcase teststep (api) > testcase config > testsuite config

你可能感兴趣的:(httprunner学习实践(四)--testcases的编写)