Esto debería ser cartero, la herramienta de prueba de interfaz más completa en toda la red.

contenido

concepto

Herramientas comunes de prueba de interfaz

interfaz devuelve datos

Protocolo de prueba de interfaz

instalar cartero

Parámetros dinámicos incorporados

Variables de entorno y variables globales

asociación de interfaz

ejecución por lotes

Afirmación

Hombre nuevo

integracion continua jenkins

posdata

concepto

¿Qué es la prueba de interfaz?

La explicación dada por Baidu Encyclopedia es : La prueba de interfaz es un tipo de prueba para probar la interfaz entre los componentes del sistema. Las pruebas de interfaz se utilizan principalmente para detectar los puntos de interacción entre el sistema externo y el sistema y entre los diversos subsistemas internos. El objetivo de la prueba es comprobar el proceso de gestión de control, transferencia e intercambio de datos, así como las dependencias lógicas mutuas entre sistemas.

Las interfaces incluyen interfaces internas y externas:

Interfaz interna : la interfaz proporcionada por el desarrollador a su propio sistema.

Interfaz externa : el sistema de desarrollo llama a las externas, como WeChat, Alipay, otras interfaces, etc.

En el trabajo de prueba de software, la interfaz se conoce colectivamente como API, que se utiliza para realizar la interacción de los datos. La esencia de las pruebas de interfaz es probar si la interfaz puede interactuar normalmente con datos, control de permisos y escenarios anormales.

Herramientas comunes de prueba de interfaz

Las herramientas de prueba de interfaz comúnmente utilizadas son cartero, jmeter

interfaz devuelve datos

El formato de los datos devueltos por la interfaz es generalmente: json, html, xml

1. formato json ( más del 85% del mercado )

Generalmente, hay tres conjuntos de datos: {"código":200,"mensaje":"Solicitud exitosa","mapa de datos":{"..."}

código: código de estado de retorno

mensaje: una explicación de la información devuelta o error de estado

dataMap: los datos reales de retorno

2. formato html

<html>
    <title></title>
    <body>
        <code>200</code>
        ......
    </body>
</html>
复制代码

3. formato xml

<?xml?version="1.0"encoding="utf-8">
      <code>200</code>
        ......
</xml>
复制代码

Protocolo de prueba de interfaz

1. protocolo de servicio web:

Dirección de la interfaz: http://......?wsdl

Protocolo 2.dubbo:

La dirección de la interfaz comienza con dubbo://......

Adecuado para la transferencia de pequeñas cantidades de datos

3. protocolo http (90%) :

Dirección de la interfaz: http://.....

El puerto http es : 80

https = protocolo de transporte seguro http+ssl, puerto 443

El protocolo HTTP se utiliza principalmente para la transmisión de datos en el mercado, por lo que principalmente aprendemos este protocolo.

¿Qué es el protocolo http?

HTTP es un protocolo de transferencia de hipertexto, que se utiliza principalmente para transmitir datos entre navegadores y servidores. La interacción tiene dos partes: solicitud y respuesta.

Solicitud: obtener, publicar, poner, eliminar

El contenido de la parte de la solicitud generalmente incluye :

1. Línea de solicitud: método de solicitud, dirección de solicitud y protocolo

2. Encabezados de solicitud : el protocolo HTTP utiliza encabezados HTTP para transmitir metainformación sobre la solicitud. Un encabezado HTTP es un par de nombre/valor separados por dos puntos, precedido por el nombre del encabezado HTTP y seguido por el valor HTTP, por ejemplo:

accept: application/json --- el formato de datos que el cliente puede recibir

X-Requested-with: XMLHttpRequest -- solicitud asíncrona

agente de usuario: -- el usuario del cliente

Host:-- la dirección de host solicitada

cookie: --información de la cookie (solicitada)

codificación de aceptación: gzip, deflate, br--método de compresión

3. Línea vacía : envíe un retorno de carro y una línea posterior para notificar al servidor que no hay más encabezado de solicitud;

4. Cuerpo del mensaje: cuando la solicitud HTTP contiene una cadena de consulta, si es el método GET, el carácter de consulta o la línea de solicitud de valor adicional de datos del formulario, no hay contenido en el cuerpo del mensaje, si es el método POST, el cadena de consulta o datos de formulario y agregados al cuerpo del mensaje.

Respuesta: Aquí están los códigos de estado de respuesta

2xx: Indica que la solicitud se envió con éxito;

3xx: indica que el recurso es transferido, comúnmente conocido como redirección;

4xx: indica que no se encuentra la ruta de la interfaz y el cliente está equivocado;

5xx: Indica una anormalidad interna en el sistema, generalmente hay un defecto en la interfaz o el contenido de la solicitud es incorrecto y el servidor está mal.

Parte de la respuesta:

1. Línea de respuesta: protocolo, código de respuesta, información de respuesta

2. Encabezado de respuesta:

servidor:nginx --servicio

fecha y hora

tipo de contenido: application/json;charset=UTF-8

conjunto-cookie: --respuesta

3. Línea vacía

4. El contenido específico de la respuesta

instalar cartero

1. Ingrese al sitio web oficial del cartero www.postman.com/downloads/

2. Descargue el paquete de instalación correspondiente de acuerdo con la configuración de su computadora

3. La instalación se abrió con éxito

Refinar el contenido de la página del cartero:

Params : se utiliza para pasar parámetros en la solicitud de obtención.

Autorización : la función de autenticación que viene con cartero

Encabezados : encabezados de solicitud

Cuerpo : parámetros de la solicitud posterior

-- none: sin argumentos

--form-data: tanto archivos como pares clave-valor

-- x-www-form-urlencoded: solo transmite pares clave-valor

-- raw: crear transferencias JSon, TXT, xml, HTML, js

-- binary: transfiere el archivo en modo binario

Script de solicitud previa : el script antes de la solicitud de interfaz, escrito en formato js

Pruebas : el código para la afirmación.

sección de respuesta

Cuerpo : los datos devueltos

-- Pretty: Mostrar en formato json

-- Raw: visualización en formato de texto

-- Vista previa: visualización en formato de página web

cookie : información de la cookie devuelta

Encabezado : encabezado de respuesta

Resultados de la prueba : resultado de la afirmación

Parámetros dinámicos incorporados

Marca de tiempo: { {$marca de tiempo}}

Genera números enteros aleatorios del 0 al 1000: { {$randomInt}}

Genere una cadena GUID: { {$guid}}

Variables de entorno y variables globales

En las empresas, generalmente hay entornos de desarrollo, entornos de prueba y entornos en línea. Algunas empresas también tienen entornos de prelanzamiento. Cuando hacemos pruebas de interfaz, encontraremos que las direcciones de las interfaces en estos entornos son diferentes, excepto por la dirección IP. Otros Los lugares son los mismos. En la prueba real, es imposible escribir un conjunto de lógica de prueba para cada entorno. En este momento, necesitamos usar variables de entorno, que son variables globales.

Agregue tres entornos nuevos y agregue las variables de dirección IP correspondientes a las variables de entorno:

Parametrice la dirección IP en la dirección de la interfaz como { {ip}} e intente ejecutarla una vez:

asociación de interfaz

En el trabajo real, los valores de algunas variables cambian dinámicamente y el valor del parámetro, como el token, debe pasarse cuando se realiza la siguiente solicitud de interfaz.

Primero debemos obtener el valor del token en la respuesta de la interfaz anterior, establecer el valor como una variable global y luego pasar el valor en forma de parametrización en la siguiente interfaz para realizar la asociación de la interfaz.

1. Método de asociación de interfaz 1: extractor json

//把responseBody转为json字符串
var jsvalue = JSON.parse(responseBody);
//将jsvalue的值打印到控制台上
console.log(jsvalue)
// 提取token的值,并保存到全局变量
pm.globals.set("token", jsvalue.token);
复制代码

Postman también proporciona métodos comunes de escritura de Pruebas, como se muestra en la siguiente figura:

2. Método de asociación de interfaz 2: extractor de expresiones regulares

{
    "tag":{
        "id":100,
        "name":"张三"
    }
}
复制代码

Si el contenido de los datos de respuesta es como el anterior, y queremos extraer 100 ahora, las reglas para usar expresiones regulares en Pruebas para extraer son responseBody.match(new RegExp('"id":(.+?),')), este método significa hacer coincidir el contenido anterior "id":y siguiente , si el resultado se imprime en la consola , es una matriz: [" "id":100,","100"], si solo obtiene 100, debe agregar un índice responseBody.match(new RegExp('"timestamp":(.+?),'))[1].

3. Método de asociación de interfaz 2: extractor de cookies

Como se muestra en la imagen a continuación, necesitamos extraer el valor en las Cookies de resultado de respuesta e imprimir el resultado en la consola.

Métodos de la siguiente manera:

//提取Cookies中SERVERID中的Value值并保存在cookies_serverid变量中
var cookies_serverid = postman.getResponseCookie('SERVERID').value
//将变量cookies_serverid中的值打印到控制台
console.log(cookies_serverid)
复制代码

ejecución por lotes

A través de las operaciones anteriores, podemos realizar la asociación entre interfaces.Para lograr una automatización completa, se requiere la ejecución por lotes.

Afirmación

Para implementar completamente las pruebas de interfaz, las aserciones son naturalmente indispensables. En cartero, el contenido de las aserciones está escrito en Pruebas, y el sistema proporciona ocho métodos de aserción:

Ocho métodos de afirmación:

//1、返回的状态码为200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

//2、返回的结果中包含一个指定的字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

//3、对返回结果做json字段检查
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

//4、断言返回的结果等于一个字符串
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

//5、断言响应头中包含有指定的响应头
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

//6、断言接口请求的时间少于200ms
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

//7、断言一个post请求返回的状态码是否在指定的范围之间
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});

//8、断言返回的状态码信息中包含指定的字符串
pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
});
复制代码

afirmación mundial

En general, cada interfaz afirmará que el código de estado devuelto es 200, por lo que podemos configurar esta afirmación como una afirmación global.

Hombre nuevo

¿Qué es Newmann?

Newman es la marca clásica de teléfono móvil Newman, jaja, es broma. En pocas palabras, Newman es la versión de línea de comandos ( modo CLI (interfaz de línea de comandos: modo de línea de comandos) ) de Postman.

Newman puede usar el archivo de colección exportado por Postman para ejecutarlo directamente en la línea de comando, reemplazando la operación de la interfaz de Postman con la línea de comando. Debido a que es una operación de línea de comandos, se puede usar con jenkins para realizar pruebas de automatización de interfaz.

Instalar Newman

Newman está escrito en JS puro, por lo que su funcionamiento requiere el soporte de la biblioteca de tiempo de ejecución de NodeJS, por lo que la premisa para descargar esta versión es que NodeJS debe estar instalado en su computadora con anticipación y luego usar NodeJS para descargar Newman.

Pedido:npm install -g newman

¿cómo utilizar?

Para ejecutar los casos de prueba de interfaz en Postman, debe exportar el conjunto de casos de prueba de interfaz, exportar variables de entorno y variables globales, y guardar los archivos exportados localmente.

Vaya a la ventana de la línea de comandos y ejecute el comando:

newman run "E:\testApi\yongli.json" -e "E:\testApi\hunjingbl.json" -g "E:\testApi\quanjubl.json" -r cli,html,json,junit --reporter-html-export "E:\testApi\report.html"

Descripción: newman run seguido del archivo de conjunto de casos de prueba directamente, -e seguido del archivo de variables de entorno, -g seguido del archivo de variables globales, -r seguido del formato de salida del informe de prueba y la ruta del archivo del informe de salida.

Esta es la visualización exitosa de la ventana de comandos:

Abra el archivo de informe de prueba de salida:

integracion continua jenkins

Baidu puede buscar la instalación de Jenkins

Después de que la instalación sea exitosa, cree un nuevo proyecto

Ingrese a la página de configuración del proyecto y configure la información relacionada

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

posdata

Todavía hay mucho contenido sobre pruebas de interfaz, como la interfaz de prueba automatizada de Python y el marco de prueba correspondiente, etc. Si desea ser invencible en el lugar de trabajo, debe continuar aprendiendo. El contenido anterior es para mí como un novato de prueba Un resumen simple, espero que los grandes dioses puedan dar más consejos.

Si el artículo es un poco útil para usted que está leyendo actualmente, ¡por favor dele un me gusta! ! ! vamos

Supongo que te gusta

Origin blog.csdn.net/ZangKang1/article/details/123696130
Recomendado
Clasificación