Last active
April 2, 2024 14:11
-
-
Save thiagosouza/76078e9d23ef553bd8d3c5b2cab56b83 to your computer and use it in GitHub Desktop.
[Postman Tests] Postman test suite config and code examples #postman #test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pm.test("Successful POST request", function () { | |
pm.expect(pm.response.code).to.be.oneOf([200, 201, 202]); | |
}); | |
pm.test("Response time is less than 10s", function () { | |
pm.expect(pm.response.responseTime).to.be.below(10000); | |
}); | |
pm.test('Response has all properties', function () { | |
let data = pm.response.json(); | |
pm.expect(data).to.have.keys(["id", "url", "internalCode", "bmpCode", "active", "signedURL", "IP", "number", "CreditRequestId", "UserId", "transferred", "wasUploadedToBMP", "codeParam", "createdAt", "updatedAt"]) | |
}); | |
pm.test('Response has all properties', function () { | |
let data = pm.response.json(); | |
let test_datetime_request_ccbs_create = pm.environment.get("test_datetime_request_ccbs_create") | |
let now = Math.round(Date.now()/1000.0) | |
console.log("comparing ", test_datetime_request_ccbs_create) | |
console.log("and ", now) | |
let updatedAtInTimestamp = Math.round(new Date(data.updatedAt).getTime()/1000.0) | |
console.log('updatedAtInTimestamp', updatedAtInTimestamp) | |
pm.expect(updatedAtInTimestamp).to.be.within(test_datetime_request_ccbs_create, now) | |
}); | |
let response = pm.response.json() | |
pm.test("Open Plus Integrator Default Request Tests", function () { | |
pm.expect(pm.response.code).to.be.oneOf([200, 201, 202, 401]); | |
}); | |
if(pm.response.code == 401){ | |
pm.test("401 should contains type and message", function () { | |
pm.expect(response.type).includes(['NO_TOKEN']); | |
pm.expect(response.message).matches(/unauthorized/i); | |
}); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pm.environment.set("test_datetime_request_ccbs_create", Math.round(Date.now() / 1000.0)) | |
pm.environment.unset('PRE_REQUEST_PAYLOAD'); | |
const users = [{ | |
cpf: "", | |
name: "", | |
phone: "+5511988887777", | |
email: "[email protected]" | |
}, | |
{ | |
cpf: "", | |
name: "", | |
phone: "+5511966665555", | |
email: "[email protected]" | |
}]; | |
// 4devs API to generate random data | |
const postRequest = { | |
url: `https://www.4devs.com.br/ferramentas_online.php`, | |
method: 'POST', | |
header: { | |
'Accept': 'application/json', | |
'Content-Type': 'application/x-www-form-urlencoded' | |
}, | |
body: { | |
mode: 'urlencoded', | |
urlencoded: [ | |
{ key: "acao", value: "gerar_pessoa" }, | |
{ key: "txt_qtde", value: 2 } | |
] | |
} | |
}; | |
(async function () { | |
await new Promise((resolve, reject) => { | |
pm.sendRequest(postRequest, (error, response) => { | |
if (error) { | |
console.info(`Can't generate random signers. Cause: ${error}`); | |
return reject(`Can't generate random signers. Cause: ${error}`); | |
} | |
/** @type{[{ | |
* nome: String | |
* cpf: String | |
* rg: String | |
* cep: String | |
* endereco: String | |
* numero: Number | |
* bairro: String | |
* cidade: String | |
* estado: String | |
}]} */ | |
const persons = response.json(); | |
persons.forEach((person, index) => { | |
users[index].name = person.nome; | |
users[index].cpf = person.cpf; | |
users[index].rg = person.rg; | |
users[index].city = person.cidade; | |
users[index].state = person.estado; | |
users[index].district = person.bairro; | |
users[index].zip = person.cep; | |
users[index].address = person.endereco + person.numero; | |
}); | |
console.info(`Random signers created correctly. Signers = ${JSON.stringify(users)}`); | |
pm.environment.set('PRE_REQUEST_PAYLOAD', JSON.stringify(users)); | |
return resolve(`Random signers created correctly`); | |
}); | |
}); | |
})(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let body = { | |
"grant_type": "client_credentials", | |
"client_id": "client_id", | |
"scope": "openid", | |
"client_secret": "bd26****-****-****-****-********37e9" | |
}; | |
pm.sendRequest({ | |
method: "POST", | |
url: pm.environment.get("keycloak_url") + `/realms/sandbox-dev/protocol/openid-connect/token`, | |
header: "Accept:application/json", | |
header: "Content-Type:application/x-www-form-urlencoded", | |
body: Object.keys(body).map((key) => `${key}=${body[key]}`).join("&") | |
}, (err, response) => { | |
console.log(err, response.json().access_token) | |
pm.environment.set("access_token, response.json().access_token); | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// local open keys | |
let varsLocalOpenKeysDev = { | |
envApp: "sandbox", //production | |
env: "dev",//hml, prd | |
projectName : "projectname", | |
client: "keys", | |
} | |
// local bech dev | |
let vars = { | |
envOpenPlusApp: "sandbox", //production | |
env: "dev",//hml, prd | |
projectName : "openplus", | |
client: "bdc" | |
} | |
// datarruder + openplus dev | |
let varsOpenplus = { | |
envOpenPlusApp: "sandbox", //production | |
env: "dev",//hml, prd | |
projectName : "opb", | |
client: "openplus" | |
} | |
let varsOverwrite = { | |
// openplus_integrator_baseurl : "http://localhost:3030" | |
}; | |
vars = varsLocalOpenKeysDev; | |
Object.keys(vars).forEach(varKey=> pm.environment.set(varKey, (vars[varKey].match(/\{\{.*?\}\}/g)) ? pm.environment.replaceIn(vars[varKey]) : vars[varKey] ) ); | |
Object.keys(varsOverwrite).forEach(varKey=> pm.environment.set(varKey, (varsOverwrite[varKey].match(/\{\{.*?\}\}/g)) ? pm.environment.replaceIn(varsOverwrite[varKey]) : varsOverwrite[varKey] ) ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment