Httprunner demostración de caso parametrizado (caso de uso único)

Directorio

 

1. Preparación del caso de uso

1.1 Generar caso de uso

1.2 Parametrización de casos de uso

1.3 función personalizada

2. Caso de uso de ejecución


1. Preparación del caso de uso

1.1 Generar caso de uso

1. Capture get_token a través del violinista y convierta el formato de archivo a .yml. Para el método de operación, vea los problemas y soluciones en el proceso de HttpRunner usando casos de documentos para registrar y convertir y generar casos de prueba

2. Coloque los casos de uso en el directorio de estructura de casos de prueba generado, vea la generación del directorio: archivo de proyecto Httprunner y organización de casos de prueba

3. Para facilitar la lectura, puede usar Notepad ++ o PyCharm para abrir este archivo de caso de uso.

4. El archivo original después de abrir se muestra a continuación, con algunos comentarios agregados al script:

config:
    name: testcase description #必填,测试用例名称,测试报告以此作为标题
    variables: {} #非必填,全局变量,作用域为整个testcase
teststeps:
-   name: /api/get-token #必填,测试步骤名称
    request: #必填,测试步骤请求信息
        headers: #请求头中的信息
            Content-Type: application/json
            Postman-Token: cc0a84c0-7c4c-4634-8d36-7bd58563045a
            User-Agent: PostmanRuntime/7.24.0
            app_version: 2.8.6
            device_sn: FwgRiO7CNA50DSU
            os_platform: ios
            user_agent: iOS/10.3
        json:           #请求体body中的信息
            sign: 9c0c7e51c91ae963c833a4ccbab8d683c4a90c98
        method: POST            #请求类型
        url: http://127.0.0.1:5000/api/get-token #请求地址
    validate:
    -   eq:
        - status_code
        - 200
    -   eq:
        - headers.Content-Type
        - application/json
    -   eq:
        - content.success
        - true
    -   eq:
        - content.token
        - dKbNLKokkvNkq8hj

1.2 Parametrización de casos de uso

1. Ahora necesitamos parametrizar los tres parámetros device_sn, app_version y os_platform y el signo en el cuerpo de la solicitud

Primero, declare variables y asigne valores en el módulo de variables en config;

Segundo, variables de referencia ($ var) o asignaciones de funciones de llamada ($ {func ($ var)}) en la sección de casos de uso;

Nuevamente, escriba la función personalizada en debugtalk.py.

Pasado

Las variables y parámetros relevantes se definen en la función debugtalk.py. Para más detalles, consulte el mecanismo de enlace en el manual chino httprunner

Este archivo está en la raíz del directorio de resultados generado automáticamente:

    

Los casos de uso parametrizados son los siguientes:

config:
    name: 获得 token with  $os_platform, $app_version #必填,测试用例名称,测试报告以此作为标题
    variables: #非必填,声明全局变量,并赋值,作用域为整个testcase
        device_sn: ${gen_random_string(15)} #生成 15 位长度的随机字符串并赋值给 device_sn,函数在debugtalk.py中定义
        os_platform: 'ios'
        app_version: '2.8.6'

teststeps:
-   name: /api/get-token #必填,测试步骤名称
    request: #必填,测试步骤请求信息
        headers: #请求头中的信息
            Content-Type: application/json
            Postman-Token: cc0a84c0-7c4c-4634-8d36-7bd58563045a
            User-Agent: PostmanRuntime/7.24.0
            app_version: $app_version
            device_sn: $device_sn
            os_platform: $os_platform
            user_agent: iOS/10.3
        json:           #请求体body中的信息
            sign: ${get_sign($device_sn, $os_platform, $app_version)} #根据签名算法生成 sign 值,函数在debugtalk.py中定义
        method: POST            #请求类型
        url: http://127.0.0.1:5000/api/get-token #请求地址
    validate:
    -   eq:
        - status_code
        - 200
    -   eq:
        - headers.Content-Type
        - application/json
    -   eq:
        - content.success
        - true

1.3 función personalizada

El archivo debugtalk.py después de agregar la función personalizada es el siguiente:

import os
import random
import string
import time
import hmac
import hashlib

SECRET_KEY = "DebugTalk"

def sleep(n_secs):
    time.sleep(n_secs)
def gen_random_string(str_len): #生成 15 位长度的随机字符串并赋值给 device_sn
    random_char_list = []
    for _ in range(str_len):
        random_char = random.choice(string.ascii_letters + string.digits)
        random_char_list.append(random_char)

    random_string = ''.join(random_char_list)
    return random_string

def get_sign(*args): #根据签名算法生成 sign 值
    content = ''.join(args).encode('ascii')
    sign_key = SECRET_KEY.encode('ascii')
    sign = hmac.new(sign_key, content, hashlib.sha1).hexdigest()
    return sign

2. Caso de uso de ejecución

Ejecute hrun D: \ httprunner \ Api_api \ testcases \ get_token_new.yml, ejecute este caso de uso único para ver los resultados

Una vez completada la ejecución, vaya al directorio de informes para ver el archivo de informe de salida

Abra el archivo del informe para ver el siguiente contenido:

Publicado 8 artículos originales · ganó 27 · vistas 1500

Supongo que te gusta

Origin blog.csdn.net/niuhaoyuan/article/details/105390679
Recomendado
Clasificación