El motor de scripting de Apidog utiliza el objeto pm para acceder a datos sobre la petición, la respuesta y las variables. Este método es compatible con Postman.Objeto pm#
El objeto pm tiene las siguientes propiedades principales.| Propiedad | Tipo de datos | Descripción |
|---|
pm.info.eventName | String | El tipo de scripts que se está ejecutando actualmente (script de preprocesador o script de postprocesador). |
pm.info.iteration | Number | El número de la iteración actual (solo válido en colecciones de prueba). |
pm.info.iterationCount | Number | El número total de iteraciones (solo válido en colecciones de prueba). |
pm.info.requestName | String | El nombre de la API actual en ejecución. |
pm.info.requestId | String | El ID de la API actual en ejecución. |
Enviar peticiones (pm.sendRequest)#
pm.sendRequest se utiliza para enviar peticiones HTTP/HTTPS asíncronas en scripts.Este método acepta un parámetro de petición compatible con collection SDK y un parámetro de función de callback. El callback tiene 2 argumentos. El primero es un error y el segundo es una respuesta compatible con collection SDK. Consulte más información en la documentación de Collection SDK. Puede usarlo tanto en scripts de preprocesador como de postprocesador.
Para obtener más referencias, visite:pm.variables#
pm.variables: consulte la documentación de Variable SDK aquí.Variables locales. La prioridad de las diferentes variables es la siguiente:Variables locales > Variables de entorno > Variables globales compartidas dentro del proyecto > Variables globales compartidas dentro del equipo.pm.variables.has(variableName:String):function → Boolean: Compruebe si existe una variable temporal.
pm.variables.get(variableName:String):function → *: obtenga una variable temporal.
pm.variables.set(variableName:String, variableValue:String):function → void: establezca una variable temporal.
pm.variables.replaceIn(variableName:String):function: Sustituye las "variables dinámicas" dentro de una cadena (por ejemplo, {{variable_name}}) por valores reales. Ejemplo:
// Define a string containing a dynamic variable
let stringWithVariable = "Hello, {{username}}";
// Use the replaceIn method to replace the {{username}} placeholder
let realValueString = pm.variables.replaceIn(stringWithVariable);
// Output the replaced value
console.log(realValueString); // Output: "Hello, john_doe"
pm.variables.replaceInAsync(variableName:String):function: Sustituye las "expresiones de valor dinámico" dentro de una cadena (por ejemplo, {{$person.fullName}}) por valores reales. Este método devuelve una Promise, por lo que debe usar await al llamarlo. Ejemplo:
// Define a string containing a dynamic value expression
let stringWithVariable = "Hello, {{$person.fullName}}";
// Use the replaceInAsync method to replace the {{$person.fullName}}
let realValueString = await pm.variables.replaceInAsync(stringWithVariable);
pm.variables.toObject():function → Object: obtenga todas las variables locales como objetos.
pm.iterationData#
Variables de datos de pruebaActualmente no admitimos la configuración de variables de datos de prueba directamente en scripts, ya que los datos de prueba se gestionan por separado. Sin embargo, puede acceder a las variables en scripts como se muestra a continuación:pm.iterationData.has(variableName:String):function → Boolean: Compruebe si existe una variable de prueba.
pm.iterationData.get(variableName:String):function → *: obtenga una variable de prueba.
pm.iterationData.replaceIn(variableName:String):function: sustituya variables dinámicas en una cadena por sus valores reales, por ejemplo, {{variable_name}}.
pm.iterationData.toObject():function → Object: obtenga todas las variables locales como objetos.
pm.environment#
pm.environment.name:String: el nombre del entorno.
pm.environment.has(variableName:String):function → Boolean: Compruebe si existe una variable de entorno.
pm.environment.get(variableName:String):function → *: obtenga una variable de entorno.
pm.environment.set(variableName:String, variableValue:String):function: establezca una variable de entorno.
pm.environment.replaceIn(variableName:String):function: sustituya variables dinámicas en una cadena por sus valores reales, por ejemplo, {{variable_name}}.
pm.environment.toObject():function → Object: obtenga todas las variables locales como objetos.
pm.environment.unset(variableName:String):function: quite una variable de entorno.
pm.environment.clear():function: borre todas las variables de entorno del entorno actual.
CONSEJO: las operaciones mencionadas anteriormente solo leen y escriben valores actuales; no leen ni escriben valores remotos.pm.moduleVariables#
pm.moduleVariables: ObjectSe utiliza para gestionar el valor actual de las variables de nivel de módulo.pm.moduleVariables.has(variableName: String): function → Boolean
Comprueba si existe una variable de módulo específica.
pm.moduleVariables.get(variableName: String): function → *
Recupera el valor de una variable de módulo específica.
pm.moduleVariables.set(variableName: String, variableValue: String): function
Establece el valor de una variable de módulo específica.
pm.moduleVariables.replaceIn(variableName: String): function
Sustituye los marcadores de posición {{variable}} dentro de una cadena por sus valores reales.
pm.moduleVariables.toObject(): function → Object
Devuelve todas las variables de módulo como un objeto clave-valor.
pm.moduleVariables.unset(variableName: String): function
Elimina una variable de módulo específica.
pm.moduleVariables.clear(): function
Borra todas las variables de módulo dentro del módulo actual.
Nota de compatibilidad:
pm.collectionVariables funciona de la misma manera que pm.moduleVariables y puede usarse indistintamente.
pm.globals#
pm.globals.has(variableName:String):function → Boolean: Compruebe si existe una variable global.
pm.globals.get(variableName:String,variableScope:String):function → *: obtenga una variable global. Use 'PROJECT' (predeterminado) o 'TEAM' para especificar el ámbito de la variable.
pm.globals.set(variableName:String,variableValue:String, variableScope:String):function: establezca una variable global. Use 'PROJECT' (predeterminado) o 'TEAM' para especificar el ámbito de la variable.
pm.globals.replaceIn(variableName:String):function: sustituya variables dinámicas en una cadena por sus valores reales, por ejemplo, {{variable_name}}.Para obtener el valor de un parámetro de petición que contiene una variable en scripts de preprocesador, use pm.globals.replaceIn para sustituir la variable por el valor real.
pm.globals.toObject():function → Object: obtenga todas las variables globales como objetos.
pm.globals.unset(variableName:String,variableScope:String):function: quite una variable global. Use 'PROJECT' (predeterminado) o 'TEAM' para especificar el ámbito de la variable.
pm.globals.clear():function: borre todas las variables globales del entorno actual.
1.
Todas las operaciones anteriores afectan solo a los valores actuales, no a los valores iniciales.
2.
Al usar set con el ámbito 'TEAM', solo se actualizará el valor actual de una variable de equipo existente. Si la variable de equipo no existe, no se creará. En su lugar, la variable se tratará como una variable local.
pm.request#
pm.request: consulte la documentación de Request SDK aquí.request es el objeto de petición de API. En el script de preprocesador, es la petición que se enviará. En el script de postprocesador, es la petición que ya se ha enviado.request incluye la siguiente información:pm.request.url:Url: la URL de la petición actual.pm.request.getBaseUrl(): Recupera la BASE URL seleccionada por el entorno de tiempo de ejecución actual. Esta función es compatible a partir de la versión 2.1.39.
pm.request.headers:HeaderList: la lista de encabezados de la petición actual.pm.request.method:String: el método de la petición actual, como GET, POST, etc.
pm.request.body: RequestBody: el cuerpo de la petición actual.pm.request.headers.add({ key: headerName:String, value: headerValue:String}):function: Añada un encabezado con una clave, headerName, en la petición actual.
pm.request.headers.remove(headerName:String):function: Elimine un encabezado con una clave, headerName, en la petición actual.
pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function: Haga upsert de un encabezado con una clave, headerName, en la petición actual. Si la clave ya existe, se modificará.
La siguiente API solo puede usarse en scripts de postprocesador.
pm.response#
Use pm.response para acceder a la información de respuesta devuelta en scripts de postprocesador.pm.response incluye la siguiente información:pm.response.status:String
pm.response.responseTime:Number
pm.response.responseSize:Number
pm.response.text():Function → String
pm.response.json():Function → Object
pm.cookies#
Cookies es la lista de cookies bajo el nombre de dominio de la petición actual.pm.cookies.has(cookieName:String):Function → Boolean
Compruebe si existe el valor de cookie de un cookieName.
pm.cookies.get(cookieName:String):Function → String
Obtenga el valor de cookie de cookieName.
pm.cookies.toObject:Function → Object
Obtenga todas las cookies del dominio actual como un objeto.
pm.cookies.jar().clear(pm.request.url)
Borre todas las cookies.
pm.cookies es la cookie devuelta después de la petición de API, no la cookie enviada por la petición de API.
pm.test#
Esta función se utiliza para afirmar si un resultado cumple las expectativas.El siguiente ejemplo puede usarse para determinar si una respuesta es correcta.Puede ejecutar una prueba asíncrona usando done (un parámetro opcional) en una función de callback.pm.test.index():Function → Number
Obtenga el número total de pruebas desde una ubicación específica.
pm.expect#
pm.expect es un método de aserción. Consulte aquí la documentación de la biblioteca BDD expects de ChaiJS.pm.response.to.have.*#
pm.response.to.have.status(code:Number)
pm.response.to.have.status(reason:String)
pm.response.to.have.header(key:String)
pm.response.to.have.header(key:String, optionalValue:String)
pm.response.to.have.body()
pm.response.to.have.body(optionalValue:String)
pm.response.to.have.body(optionalValue:RegExp)
pm.response.to.have.jsonBody()
pm.response.to.have.jsonBody(optionalExpectEqual:Object)
pm.response.to.have.jsonBody(optionalExpectPath:String)
pm.response.to.have.jsonBody(optionalExpectPath:String, optionalValue:*)
pm.response.to.have.jsonSchema(schema:Object)
pm.response.to.have.jsonSchema(schema:Object, ajvOptions:Object)
pm.response.to.be.*#
Puede usar el pm.response.to.be integrado para aserciones rápidas.pm.response.to.be.info
Compruebe si el código de estado es 1XX.
pm.response.to.be.success
Compruebe si el código de estado es 2XX.
pm.response.to.be.redirection
Compruebe si el código de estado es 3XX.
pm.response.to.be.clientError
Compruebe si el código de estado es 4XX.
pm.response.to.be.serverError
Compruebe si el código de estado es 5XX.
pm.response.to.be.error
Compruebe si el código de estado es 4XX o 5XX.
pm.response.to.be.ok
Compruebe si el código de estado es 200.
pm.response.to.be.accepted
Compruebe si el código de estado es 202.
pm.response.to.be.badRequest
Compruebe si el código de estado es 400.
pm.response.to.be.unauthorized
Compruebe si el código de estado es 401.
pm.response.to.be.forbidden
Compruebe si el código de estado es 403.
pm.response.to.be.notFound
Compruebe si el código de estado es 404.
pm.response.to.be.rateLimited
Compruebe si el código de estado es 429.