Lo mejor de toda la red, prueba de interfaz de cartero - combate de aplicación avanzada (resumen)


prefacio

control de procesos

En resumen, el control de flujo es establecer el orden de ejecución de la interfaz, y el control de flujo solo tiene efecto en el corredor de colección o Newman

Si necesita implementar un ciclo de múltiples interfaces, simplemente escriba un script en las Pruebas de cada interfaz

postman.setNextRequest('下一个接口名');

El funcionamiento se muestra en la siguiente figura:

C1

Use if para juzgar para finalizar la ejecución:

if(globals["我的地盘::创建新列表 - 禅道"])postman.setNextRequest("null");
tests["执行完毕!"] = responseCode.code ===200;

Mi sitio::Cree una nueva lista: Zen Road es el valor devuelto en la interfaz B y defínalo como una variable global en la interfaz B. La interfaz A juzga si la interfaz B se ejecuta juzgando si existe la variable global.
Si la variable global existe, la ejecución finalizará; de lo contrario, se ejecutará la interfaz B.

postman.setNextRequest("null");	//是一个终止程序作用

Nota:
Si no se establece una condición de terminación, la ejecución de la interfaz A conducirá a la interfaz B, y la interfaz B apuntará a la interfaz A después de la ejecución, lo que formará un bucle infinito. En este ejemplo, if(globals["My Site::Create a new list - Zen Road"]) es la condición de finalización.

La variable global utilizada para el juicio debe eliminarse antes de la ejecución; de lo contrario, la ejecución finalizará después de la primera ejecución de la interfaz A.

Para ver los resultados de ejecución de manera más clara e intuitiva, es mejor agregar una afirmación en las Pruebas de cada interfaz, de lo contrario, es difícil juzgar la cantidad de veces que se ejecuta la interfaz A.

depuración

Hay tres formas de depurar:
use Ctrl+Alt+c para abrir la consola de Postman y podrá ver las solicitudes y respuestas (solo para clientes, no para complementos de Chrom);

Use console.log() para imprimir y vaya a la consola para ver;

tests['Escriba la cadena que desea ver aquí'] = true para ver la afirmación en la interfaz/informe;

Use la consola Postman para ver, como se muestra en la siguiente figura:

C2

Use console.log() para imprimir el contenido de salida como se muestra en la siguiente figura:

C3

Use tests['aquí para deletrear la cadena que desea ver'] = true, tests no solo se refiere a establecer aserciones, sino que también puede generar cierta información en general, como se muestra en la siguiente figura:

C4

funcion publica

Las funciones públicas de uso común se dividen en seis tipos, a saber:

Determinar si el tiempo de espera (assertNotTimeout):

var hasResponse=postman.getResponseHeader('Content-Type')?true:false; 

if(!hasResponse) tests['服务端在超时前没返回任何数据,请检查相关服务、网络或反向代理设置(以下跳过其他断言)']=false;

No se agotó el tiempo de espera, mostrando los parámetros de solicitud enviados (logParams):

if(hasResponse) tests[`[INFO] 请求参数(超时没返回时不解析):${
      
      JSON.stringify(request.data)}`]=true;

Sin tiempo de espera, analice el objeto JSON devuelto (getResponseJson):

try{
    
    
	if(hasResponse) var json=JSON.parse(responseBody);

}catch(err)
{
    
     
tests['服务端没返回合法的JSON格式,请检查相关服务、网络或反向代理设置(以下跳过其他断言)']=false;
tests[`[INFO] 返回:${
      
      responseBody}`]=true; 
console.error(err);
}

Devuelve el tipo del elemento (assertType):

var assertType=(name,value,type)=>{
    
    
	let isType=(type==='array')? Array.isArray(value):typeof value===type; 

	tests[`${
      
      name}${
      
      type}(实际值:${
      
      value}`]=isType;
	};

Devuelve si el elemento es consistente con el valor esperado (assertEqual):

var assertEqual=(name,actual,expected)=>{
    
    
	tests[`${
      
      name}等于${
      
      expected}(实际值:${
      
      actual}`]=actual===expected;
	};

Devuelve si el elemento es inconsistente con el valor esperado (assertNotEqual):

var assertNotEqual=(name,actual,expected)=>{
    
    
	tests[`${
      
      name}不等于${
      
      expected}(实际值:${
      
      actual}`]=actual!==expected;
	};

Para facilitar su uso, las funciones anteriores se configuran como variables globales, y cada línea se edita en forma de un par de clave: valor para configurar como variables globales, como se muestra en la siguiente figura:

C5

Después de configurar, para usar la función anterior, el código de uso es:

eval(globals.assertNotTimeout);//判断是否超时
eval(globals.logParams);//未超时,显示发出的请求参数
eval(globals.getResponseJson);//未超时,解析返回的JSON对象
eval(globals.assertType);//返回元素的类型
eval(globals.assertEqual);//返回元素是否与预期值一致
eval(globals.assertNotEqual);//返回元素是否与预期值不一致

El uso específico de cada función se explica en detalle a continuación:

①Utilice la primera función y la segunda función juntas, primero juzgue si se agotó el tiempo de espera, si no se agotó el tiempo de espera, luego muestre los parámetros de solicitud enviados, la operación se muestra en la figura a continuación:

C6

El código en las pruebas es:

eval(globals.assertNotTimeout);
eval(globals.logParams);

②Utilice la primera función y la tercera función juntas, primero juzgue si se agotó el tiempo de espera, si no, analice el objeto JSON devuelto, y la operación se muestra en la figura a continuación:

C7

Complete el siguiente código en las pruebas:

eval(globals.assertNotTimeout);
eval(globals.getResponseJson);

tests[json.expires_in] = 7200;

Nota: dado que getResponseJson es el objeto JSON devuelto por el análisis, la solicitud de interfaz debe devolver JSON para ser utilizado

archivo de datos externo

Los archivos de datos externos son ejecutores de recopilación que pueden importar archivos CSV o archivos JSON en solicitudes y secuencias de comandos HTTP, y usar valores de archivos de datos (es decir, archivos CSV o JSON). Para usarlos en la interfaz de usuario de Postman, debe seguir las entorno o Misma sintaxis que las variables globales.

Pasos de la operación:
use variables en su solicitud de colección, todas las siguientes variables serán reemplazadas por los valores correspondientes en el archivo de datos

Prepare el archivo de datos (JSON/CSV) que necesita para ejecutar
. Para trabajar en Collection Runner, la primera línea del archivo CSV debe ser el nombre de la variable que se usará en la solicitud. Cada línea es un caso de uso y representa una iteración.

JSON, debe asegurarse de que su archivo tenga una matriz de pares clave/valor. Cada elemento de la matriz es un objeto de pares clave-valor, lo que representa una iteración. La clave se usa como nombre de variable y los valores se usan para reemplazar los valores en la solicitud.

Abra la ventana Collection Runner y seleccione la colección o carpeta adecuada

Seleccione "Elegir archivos" para cargar el archivo de datos desde el área de selección de archivos. Si la carga es exitosa, puede obtener una vista previa de la cantidad de datos ejecutados en Collection Runner

Establecer el número de iteraciones. Cada iteración usará una fila de su archivo de datos, si el número de iteraciones excede el número de filas en su archivo de datos, se repetirá la última fila

Ejecute Collection y observe los resultados

Nota: Cuando haya varios valores clave, use inglés en el medio y sepárelos. El nombre del parámetro en la primera línea del archivo csv debe ser coherente con el nombre de la variable establecido en la solicitud de envío.

Tome la interfaz de Baidu como ejemplo, establezca los parámetros, como se muestra en la siguiente figura:

C8

Seleccione la interfaz en el panel izquierdo y ejecútela, como se muestra en la figura a continuación

C9

Configure los parámetros, como se muestra en la siguiente figura:

Q10

El archivo de formato csv se crea primero y luego se agrega en tiempo de ejecución, el efecto de vista previa es el siguiente:

C11

El efecto de ejecución final se muestra en la siguiente figura:

C12

El siguiente es el diagrama de sistema de arquitectura de conocimiento de aprendizaje de ingeniero de prueba de software más completo en 2023 que compilé

1. De la entrada al dominio de la programación en Python

Por favor agregue una descripción de la imagen

2. Proyecto de automatización de interfaz de combate real.

Por favor agregue una descripción de la imagen

3. Combate real del proyecto de automatización web

Por favor agregue una descripción de la imagen

4. Combate real del proyecto de automatización de aplicaciones

Por favor agregue una descripción de la imagen

5. Hoja de vida de los fabricantes de primer nivel

Por favor agregue una descripción de la imagen

6. Probar y desarrollar el sistema DevOps

Por favor agregue una descripción de la imagen

7. Herramientas de prueba automatizadas de uso común

Por favor agregue una descripción de la imagen

Ocho, prueba de rendimiento JMeter

Por favor agregue una descripción de la imagen

9. Resumen (pequeña sorpresa al final)

En el torrente del tiempo, avanza sin miedo a los contratiempos. Use coraje y persistencia para dibujar un capítulo magnífico en la vida, y use el trabajo duro y la lucha para escribir un capítulo magnífico de éxito. ¡Cree en tu potencial, suelta las alas de tu corazón y volarás alto!

Supera espinas y espinas, sin remordimientos; mira hacia el futuro, lleno de confianza. La lucha no se limita a un momento, sino a una búsqueda continua. Cada esfuerzo dejará huellas, y cada lucha creará brillantez.

Persigue valientemente la llama en tu corazón, vuela las alas de tus sueños y escribe una vida maravillosa con persistencia y trabajo duro. Las dificultades son el trampolín hacia el éxito y los reveses son el catalizador para el crecimiento. ¡Cree en ti mismo y sigue esforzándote, y eventualmente crearás tu propio brillo y valor!

Supongo que te gusta

Origin blog.csdn.net/x2waiwai/article/details/132023867
Recomendado
Clasificación