Httprunnerのパラメーター化されたケースのデモ(関連するユースケース)

ディレクトリ

1.インターフェースを定義する

1.1インターフェース定義を書く

1.2デバッグAPI

2.テストケースが定義済みのAPIを呼び出す

3.パラメータ間の相関

3.1ユースケースの次のステップのパラメーターは、前のステップで取得する必要があります

3.2ユースケースで別のユースケースを呼び出し、必要なパラメーターを渡して達成する

4.テストステップの記述方法


1.インターフェースを定義する

1.1インターフェース定義を書く

最初に、ケースディレクトリtests \ apiのget_token.ymlを、作成したテスト構造ディレクトリApi_api \ apiにコピーし、コメントを追加して、例の記述方法を理解します。

name: get token #接口定义描述
base_url: http://127.0.0.1:5000 #请求的根目录
variables: #定义变量
    user_agent: PostmanRuntime/7.24.0
    device_sn: ${gen_random_string(15)}
    os_platform: ios
    app_version: 2.8.6
    expected_status_code: 200
request: #请求信息
    url: /api/get-token  #请求的相对路径
    method: POST
    headers:
        user_agent: $user_agent
        device_sn: $device_sn
        os_platform: $os_platform
        app_version: $app_version
        Content-Type: "application/json"
        device_sn: $device_sn
    json:
        sign: ${get_sign($device_sn, $os_platform, $app_version)}
validate: #校验/断言
    - eq: ["status_code", $expected_status_code] #状态码
    - len_eq: ["content.token", 16] #token字符串长度
    - contains: [{"a": 1, "b": 2}, "a"] #此句不明何意?

1.2デバッグAPI

APIは可能な限り完全な状態に保たれ、個別に実行してデバッグを容易にすることができます。

hrun D:\ httprunner \ Api_api \ api \ get_token.yml

2.テストケースが定義済みのAPIを呼び出す

2.1参照インターフェースの定義

config:
    name: 获得 token #必填,测试用例名称,测试报告以此作为标题
    variables: #非必填,全局变量,作用域为整个testcase,可合并覆盖API中的variables
        user_agent: win/7
        os_platform: 'win'
        device_sn: TESTCASE_SETUP_001

teststeps:
-   name: /api/get-token #必填,测试步骤名称
    api: api/get_token.yml
    variables: #合并覆盖API中的variables,但不能覆盖config中的variables
        user_agent: 'iOS/12'
        app_version: '7'
    extract:
        - session_token: content.token
    teardown_hooks:
        - ${hook_print($user_agent)}
        - ${hook_print($os_platform)}
        - ${hook_print($app_version)}
        - ${hook_print($device_sn)}

    validate:
    -   eq:
        - status_code
        - 200
    -   len_eq:
        - content.token
        - 16


2.2トークン情報を抽出する

extractキーワードを使用して情報を抽出します。完全なコードは次のとおりです。

config:
    name: 获得 token #必填,测试用例名称,测试报告以此作为标题
    variables: #非必填,全局变量,作用域为整个testcase,可合并覆盖API中的variables
        user_agent: win/7
        os_platform: 'win'
        device_sn: TESTCASE_SETUP_001
    output: #只能打印出config中定义的变量,和extract提取的信息,步骤中定义的和api中定义的变量,在此输出时找不到数据
        - session_token
        - user_agent
        - os_platform
        - app_version
        - device_sn
teststeps:
-   name: /api/get-token #必填,测试步骤名称
    api: api/get_token.yml
    variables: #合并覆盖API中的variables,但不能覆盖config中的variables
        user_agent: 'iOS/12'
        app_version: '7'
    extract:
        - session_token: content.token #获取token值
    output: #放在测试步骤中不会打印出信息
        - app_version

    teardown_hooks:
        - ${hook_print($user_agent)}
        - ${hook_print($os_platform)}
        - ${hook_print($app_version)}
        - ${hook_print($device_sn)}


    validate:
    -   eq:
        - status_code
        - 200
    -   len_eq:
        - content.token
        - 16


1.3 outputキーワードを使用して、抽出されたキーワードを出力します

上記のコードでは、抽出されたデータを実行結果で簡単に表示できるように、出力を使用してトークンを出力していますが、試行中に次の2つの問題が見つかりました。

1. configで記述された出力は効果的ですが、teststepsで記述された効果はありません。

2. configに書き込みます。configで定義された変数と、extractによって抽出された情報、手順で定義された変数、定義されたapiのみを出力できます。この出力ではデータが見つかりません。

 

3.パラメータ間の相関

3.1ユースケースの次のステップのパラメーターは、前のステップで取得する必要があります

この例では、ユーザーを作成するときに、get_tokenインターフェースによって生成されたトークンデータが必要です。以下は、ユーザーを作成するためのインターフェーススクリプトを実装しています。

config:
    name: 创建用户 #必填,测试用例名称,测试报告以此作为标题
    variables: #非必填,全局变量,作用域为整个testcase,可合并覆盖API中的variables
        user_agent: win/7
        os_platform: 'win'
        device_sn: ${gen_random_string(15)}
    output: #只能打印出config中定义的变量,和extract提取的信息,步骤中定义的和api中定义的变量,在此输出时找不到数据
        - session_token
        - user_agent
        - os_platform
        - app_version
        - device_sn
    extract:
        - session_token
teststeps:
-   name: 获取token #必填,测试步骤名称
    api: api/get_token.yml
    variables: #合并覆盖API中的variables,但不能覆盖config中的variables
        user_agent: 'iOS/12'
        app_version: '7'
    extract:
        - session_token: content.token #获取token值
    teardown_hooks:
        - ${hook_print($user_agent)}
        - ${hook_print($os_platform)}
        - ${hook_print($app_version)}
        - ${hook_print($device_sn)}

    validate:
    -   eq:
        - status_code
        - 200
    -   len_eq:
        - content.token
        - 16

-   name: 创建用户 #必填,测试步骤名称
    api: api/create_user.yml
    variables:
        token: $session_token

3.2ユースケースで別のユースケースを呼び出し、必要なパラメーターを渡して達成する

1.パラメーター情報を取得するには、呼び出されたパラメーターに抽出キーワードを追加する必要があります。同時に、このパラメーターを構成に追加します。他のユースケースでは、取得したパラメーターを使用できます。抽出コードブロックは、次のように完全なコードに追加されます。

config:
    name: 获得 token #必填,测试用例名称,测试报告以此作为标题
    variables: #非必填,全局变量,作用域为整个testcase,可合并覆盖API中的variables
        user_agent: 'win/7'
        os_platform: 'win'
        device_sn: ${gen_random_string(15)}
    output: #只能打印出config中定义的变量,和extract提取的信息,步骤中定义的和api中定义的变量,在此输出时找不到数据
        - session_token
        - user_agent
        - os_platform
        - app_version
        - device_sn
    extract: #后续接口需要关联此参数信息,则在此需要加入此关键字和参数
        - session_token
teststeps:
-   name: /api/get-token #必填,测试步骤名称
    api: api/get_token.yml
    variables: #合并覆盖API中的variables,但不能覆盖config中的variables
        user_agent: 'iOS/12'
        app_version: '7'
    extract:
        - session_token: content.token #获取token值
    output: #放在测试步骤中不会打印出信息
        - app_version

    teardown_hooks:
        - ${hook_print($user_agent)}
        - ${hook_print($os_platform)}
        - ${hook_print($app_version)}
        - ${hook_print($device_sn)}

    validate:
    -   eq:
        - status_code
        - 200
    -   len_eq:
        - content.token
        - 16


2.「ユーザーの作成」のユースケースで、「トークンの取得」のユースケースを呼び出します。

config:
    name: 创建用户 #必填,测试用例名称,测试报告以此作为标题
    extract:
        - session_token
        - device_sn

teststeps:
-   name: 获取token #必填,测试步骤名称
    testcase: testcases/get_token_new1.yml
    extract:
        - session_token
        - device_sn

-   name: 创建用户 #必填,测试步骤名称
    api: api/create_user.yml
    variables:
        token: $session_token
        device_sn: $device_sn


ユースケースは、次の2つの方法で正常に実行できます。

一緒に書かれたユースケースの結果:

ユースケースで別のユースケースを呼び出した結果:

4.テストステップの記述方法

テストステップ次のように、teststepsコードブロックでは、名前ブロックはステップです。

config:
    name: 创建用户 #必填,测试用例名称,测试报告以此作为标题
    extract:
        - session_token
        - device_sn

teststeps:
-   name: 获取token #第一步,获取token
    testcase: testcases/get_token_new1.yml
    extract:
        - session_token
        - device_sn

-   name: 创建用户 #第二步,根据token创建用户
    api: api/create_user.yml
    variables:
        token: $session_token
        device_sn: $device_sn

 

 

元の記事を8件公開 27 件を獲得 1500件を表示

おすすめ

転載: blog.csdn.net/niuhaoyuan/article/details/105414843