O motor de scripting do Apidog utiliza o objeto pm para aceder a dados sobre o pedido, a resposta e as variáveis. Este método é compatível com o Postman.Objeto pm#
O objeto pm tem as seguintes propriedades principais.| Propriedade | Tipo de Dados | Descrição |
|---|
pm.info.eventName | String | O tipo de scripts que está atualmente em execução (script de pré-processador ou script de pós-processador). |
pm.info.iteration | Number | O número da iteração atual (válido apenas em coleções de testes). |
pm.info.iterationCount | Number | O número total de iterações (válido apenas em coleções de testes). |
pm.info.requestName | String | O nome da API atual em execução. |
pm.info.requestId | String | O ID da API atual em execução. |
Enviar Pedidos (pm.sendRequest)#
pm.sendRequest é utilizado para enviar pedidos HTTP/HTTPS assíncronos em scripts.Este método aceita um parâmetro de pedido compatível com o SDK de coleções e um parâmetro de função de callback. O callback tem 2 argumentos. O primeiro é um erro e o segundo é uma resposta compatível com o SDK de coleções. Consulte mais informações na documentação do Collection SDK. Pode utilizá-lo tanto em scripts de pré-processador como de pós-processador.
Para mais referências, visite:pm.variables#
Variáveis locais. A prioridade das diferentes variáveis é a seguinte:Variáveis Locais > Variáveis de Ambiente > Variáveis Globais Partilhadas no Projeto > Variáveis Globais Partilhadas na Equipa.pm.variables.has(variableName:String):function → Boolean: Verificar se existe uma variável temporária.
pm.variables.get(variableName:String):function → *: obter uma variável temporária.
pm.variables.set(variableName:String, variableValue:String):function → void: definir uma variável temporária.
pm.variables.replaceIn(variableName:String):function: Substitui “variáveis dinâmicas” numa string (por exemplo, {{variable_name}}) por valores reais. Exemplo:
// 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: Substitui “expressões de valor dinâmico” numa string (por exemplo, {{$person.fullName}}) por valores reais. Este método devolve uma Promise, pelo que tem de utilizar await ao chamá-lo. Exemplo:
// 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: obter todas as variáveis locais como objetos.
pm.iterationData#
Variáveis de Dados de TesteAtualmente, não suportamos a definição de variáveis de dados de teste diretamente em scripts, uma vez que os dados de teste são geridos separadamente. No entanto, pode aceder às variáveis em scripts conforme mostrado abaixo:pm.iterationData.has(variableName:String):function → Boolean: Verificar se existe uma variável de teste.
pm.iterationData.get(variableName:String):function → *: obter uma variável de teste.
pm.iterationData.replaceIn(variableName:String):function: substituir variáveis dinâmicas numa string pelos respetivos valores reais, por exemplo, {{variable_name}}.
pm.iterationData.toObject():function → Object: obter todas as variáveis locais como objetos.
pm.environment#
pm.environment.name:String: o nome do ambiente.
pm.environment.has(variableName:String):function → Boolean:Verificar se existe uma variável de ambiente.
pm.environment.get(variableName:String):function → *: obter uma variável de ambiente.
pm.environment.set(variableName:String, variableValue:String):function:definir uma variável de ambiente.
pm.environment.replaceIn(variableName:String):function: substituir variáveis dinâmicas numa string pelos respetivos valores reais, por exemplo, {{variable_name}}.
pm.environment.toObject():function → Object: obter todas as variáveis locais como objetos.
pm.environment.unset(variableName:String):function: remover uma variável de ambiente.
pm.environment.clear():function: limpar todas as variáveis de ambiente no ambiente atual.
DICA: as operações mencionadas acima leem e escrevem apenas valores atuais; não leem nem escrevem valores remotos.pm.moduleVariables#
pm.moduleVariables: ObjectUtilizado para gerir o Valor Atual das variáveis ao nível do módulo.pm.moduleVariables.has(variableName: String): function → Boolean
Verifica se existe uma variável de módulo específica.
pm.moduleVariables.get(variableName: String): function → *
Recupera o valor de uma variável de módulo específica.
pm.moduleVariables.set(variableName: String, variableValue: String): function
Define o valor de uma variável de módulo específica.
pm.moduleVariables.replaceIn(variableName: String): function
Substitui placeholders {{variable}} numa string pelos respetivos valores reais.
pm.moduleVariables.toObject(): function → Object
Devolve todas as variáveis de módulo como um objeto chave-valor.
pm.moduleVariables.unset(variableName: String): function
Elimina uma variável de módulo específica.
pm.moduleVariables.clear(): function
Limpa todas as variáveis de módulo no módulo atual.
Nota de Compatibilidade:
pm.collectionVariables funciona da mesma forma que pm.moduleVariables e pode ser utilizado de forma intercambiável.
pm.globals#
pm.globals.has(variableName:String):function → Boolean: Verificar se existe uma variável global.
pm.globals.get(variableName:String,variableScope:String):function → *: obter uma variável global. Utilize 'PROJECT' (predefinição) ou 'TEAM' para especificar o âmbito da variável.
pm.globals.set(variableName:String,variableValue:String, variableScope:String):function: definir uma variável global. Utilize 'PROJECT' (predefinição) ou 'TEAM' para especificar o âmbito da variável.
pm.globals.replaceIn(variableName:String):function: substituir variáveis dinâmicas numa string pelos respetivos valores reais, por exemplo, {{variable_name}}.Para obter o valor de um parâmetro de pedido que contém uma variável em scripts de pré-processador, utilize pm.globals.replaceIn para substituir a variável pelo valor real.
pm.globals.toObject():function → Object: obter todas as variáveis globais como objetos.
pm.globals.unset(variableName:String,variableScope:String):function: remover uma variável global. Utilize 'PROJECT' (predefinição) ou 'TEAM' para especificar o âmbito da variável.
pm.globals.clear():function: limpar todas as variáveis globais no ambiente atual.
1.
Todas as operações acima afetam apenas os valores atuais, não os valores iniciais.
2.
Ao utilizar set com o âmbito 'TEAM', apenas será atualizado o valor atual de uma variável de equipa existente. Se a variável de equipa não existir, não será criada. Em vez disso, a variável será tratada como uma variável local.
pm.request#
pm.request: consulte a documentação do Request SDK aqui.request é o objeto de pedido da API. No script de pré-processador, é o pedido que será enviado. No script de pós-processador, é o pedido que já foi enviado.request inclui as seguintes informações:pm.request.url:Url: o URL do pedido atual.pm.request.getBaseUrl(): Recupera o BASE URL selecionado pelo ambiente de execução atual. Esta funcionalidade é suportada após a versão 2.1.39.
pm.request.headers:HeaderList: a lista de cabeçalhos do pedido atual.pm.request.method:String: o método do pedido atual, como GET, POST, etc.
pm.request.headers.add({ key: headerName:String, value: headerValue:String}):function: Adicionar um cabeçalho com uma chave, headerName, no pedido atual.
pm.request.headers.remove(headerName:String):function: Eliminar um cabeçalho com uma chave, headerName, no pedido atual.
pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function: Fazer upsert de um cabeçalho com uma chave, headerName, no pedido atual. Se a chave já existir, será modificada.
A API seguinte só pode ser utilizada em scripts de pós-processador.
pm.response#
Utilize pm.response para aceder às informações da resposta devolvida em scripts de pós-processador.pm.response inclui as seguintes informações: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 é a lista de cookies sob o nome de domínio do pedido atual.pm.cookies.has(cookieName:String):Function → Boolean
Verificar se existe o valor do cookie de um cookieName.
pm.cookies.get(cookieName:String):Function → String
Obter o valor do cookie a partir de cookieName.
pm.cookies.toObject:Function → Object
Obter todos os cookies no domínio atual como um objeto.
pm.cookies.jar().clear(pm.request.url)
Limpar todos os cookies.
pm.cookies é o cookie devolvido após o pedido da API, não o cookie enviado pelo pedido da API.
pm.test#
Esta função é utilizada para verificar, através de asserção, se um resultado corresponde às expectativas.O exemplo abaixo pode ser utilizado para determinar se uma resposta está correta.Pode executar um teste assíncrono utilizando done (um parâmetro opcional) numa função de callback.pm.test.index():Function → Number
Obter o número total de testes a partir de uma localização específica.
pm.expect#
pm.expect é um método de asserção. Consulte aqui a documentação da biblioteca BDD ChaiJS expect.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.*#
Pode utilizar o pm.response.to.be incorporado para asserções rápidas.pm.response.to.be.info
Verificar se o código de estado é 1XX.
pm.response.to.be.success
Verificar se o código de estado é 2XX.
pm.response.to.be.redirection
Verificar se o código de estado é 3XX.
pm.response.to.be.clientError
Verificar se o código de estado é 4XX.
pm.response.to.be.serverError
Verificar se o código de estado é 5XX.
pm.response.to.be.error
Verificar se o código de estado é 4XX ou 5XX.
pm.response.to.be.ok
Verificar se o código de estado é 200.
pm.response.to.be.accepted
Verificar se o código de estado é 202.
pm.response.to.be.badRequest
Verificar se o código de estado é 400.
pm.response.to.be.unauthorized
Verificar se o código de estado é 401.
pm.response.to.be.forbidden
Verificar se o código de estado é 403.
pm.response.to.be.notFound
Verificar se o código de estado é 404.
pm.response.to.be.rateLimited
Verificar se o código de estado é 429.