httprunner achieve data-driven

api template

name: 登录接口模板
variables:
    expected_status_code: 200
    password: '800001'
    username: '800001'
    vercode: ${gen_random_string(5)}
request:
    url: "/api/login"
    json:
        password: '$password'
        username: '$username'
        vercode: '$vercode'
    method: POST
validate:
    - eq: ["status_code", $expected_status_code]

Log in test case

-   config:
        base_url: "http://192.168.1.100:8093"
-   test:
        name: 登录
        api: api/login.yaml
        variables:
            password: '800001'
            username: '800001'
        validate:
            - eq: ["content.success", True]

Single parameter Parameterization

config:
    name: "用户名参数化"

testcases:
    testcase1_name:
        testcase: E:\untitled2\demo\testcases\login_demo.yaml
        parameters:
            username: ["800001","800002","800003"]

Two parameters Parameterization

config:
    name: "demo"

testcases:
    testcase1_name:
        testcase: E:\untitled2\demo\testcases\login_demo.yaml
        parameters:
            username-password:
                - ["800001","800001"]
                - ["800002","800002"]
                - ["800003","800003"]

Single parameter reference csv

config:
    name: "demo"

testcases:
    testcase1_name:
        testcase: E:\untitled2\demo\testcases\login_demo.yaml
        parameters:
            username: ${P(testsuites/user.csv)}

csv file content

username
800002
800003
800001
800009

Multiple parameters reference csv

config:
    name: "demo"

testcases:
    testcase1_name:
        testcase: E:\untitled2\demo\testcases\login_demo.yaml
        parameters:
            username-password: ${P(testsuites/userpwd.csv)}

csv file content

username,password
800001,800001
800002,800002
800003,800003
800004,800004

Two reference parameters custom functions

config:
    name: "demo"

testcases:
    testcase1_name:
        testcase: E:\untitled2\demo\testcases\login_demo.yaml
        parameters:
            username-password: ${create_account(10)}

Create a user method

def create_account(number):
    accounts=[]
    for index in range(1,number):
        accounts.append({'username':str(800001+index),'password':str(800001+index)})
    return accounts

Guess you like

Origin blog.csdn.net/qq1105273619/article/details/90719367