功能行为测试
在本教程中,了解如何编写执行以下操作的测试:
- 向新端点发送 POST 请求
- 创建响应状态检查
编写请求脚本
首先要做的是为端点添加逻辑。为此,您需要发起一个HTTP 请求
- 导入 HTTP 模块。
- 创建一个用于用户认证的负载(payload)。
- 使用
http.post
方法将带负载的请求发送到端点。
为了测试,请复制此文件并将其保存为api-test.js
。
// import necessary module
import http from 'k6/http';
export default function () {
// define URL and payload
const url = 'https://quickpizza.grafana.com/api/users/token/login';
const payload = JSON.stringify({
username: 'default',
password: '12345678',
});
const params = {
headers: {
'Content-Type': 'application/json',
},
};
// send a post request and save response as a variable
const res = http.post(url, payload, params);
}
使用k6 run
命令运行脚本
k6 run api-test.js
测试完成后,k6 会报告默认结果摘要。
/\ |‾‾| /‾‾/ /‾‾/
/\ / \ | |/ / / /
/ \/ \ | ( / ‾‾\
/ \ | |\ \ | (‾) |
/ __________ \ |__| \__\ \_____/ .io
execution: local
script: api-test.js
output: -
...
作为可选步骤,您可以将响应体记录到控制台,以确保您获得了正确的响应。
export default function () {
// ...
const res = http.post(url, payload, params);
// Log the request body
console.log(res.body);
}
添加响应检查
一旦您确定请求格式正确,请添加一个检查来验证系统是否响应了预期的状态码。
- 更新您的脚本,使其包含以下检查函数。
// Import necessary modules
import { check } from 'k6';
import http from 'k6/http';
export default function () {
// define URL and payload
const url = 'https://quickpizza.grafana.com/api/users/token/login';
const payload = JSON.stringify({
username: 'default',
password: '12345678',
});
const params = {
headers: {
'Content-Type': 'application/json',
},
};
// send a post request and save response as a variable
const res = http.post(url, payload, params);
// check that response is 200
check(res, {
'response code was 200': (res) => res.status == 200,
});
}
- 再次运行脚本。
k6 run api-test.js
检查您的检查结果输出。它应该看起来像这样。
✓ response code was 200
注意
在更大的负载下,此检查在某些迭代中可能会失败。失败的检查不会停止测试。
相反,k6 会跟踪成功率并在您的测试结束摘要中呈现。
后续步骤
在本教程中,您使用了 k6 发起 POST 请求并检查其是否响应了200
状态。
然而,这些测试只发起一个请求,这并不能充分说明系统在负载下的响应情况。为此,您需要进行负载测试。