菜单
文档breadcrumb arrow Grafana k6breadcrumb arrow 示例breadcrumb arrow k6 入门breadcrumb arrow 功能行为测试
开源

功能行为测试

在本教程中,了解如何编写执行以下操作的测试:

  • 向新端点发送 POST 请求
  • 创建响应状态检查

编写请求脚本

首先要做的是为端点添加逻辑。为此,您需要发起一个HTTP 请求

  1. 导入 HTTP 模块。
  2. 创建一个用于用户认证的负载(payload)。
  3. 使用http.post 方法将带负载的请求发送到端点。

为了测试,请复制此文件并将其保存为api-test.js

bash
// 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 命令运行脚本

bash
k6 run api-test.js

测试完成后,k6 会报告默认结果摘要

bash
          /\      |‾‾| /‾‾/   /‾‾/
     /\  /  \     |  |/  /   /  /
    /  \/    \    |     (   /   ‾‾\
   /          \   |  |\  \ |  (‾)  |
  / __________ \  |__| \__\ \_____/ .io

  execution: local
     script: api-test.js
     output: -
  ...

作为可选步骤,您可以将响应体记录到控制台,以确保您获得了正确的响应。

bash
export default function () {
  // ...

  const res = http.post(url, payload, params);

  // Log the request body
  console.log(res.body);
}

添加响应检查

一旦您确定请求格式正确,请添加一个检查来验证系统是否响应了预期的状态码。

  1. 更新您的脚本,使其包含以下检查函数。
bash
// 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,
  });
}
  1. 再次运行脚本。
bash
k6 run api-test.js
  1. 检查您的检查结果输出。它应该看起来像这样。

    ✓ response code was 200

注意

在更大的负载下,此检查在某些迭代中可能会失败。失败的检查不会停止测试。

相反,k6 会跟踪成功率并在您的测试结束摘要中呈现。

后续步骤

在本教程中,您使用了 k6 发起 POST 请求并检查其是否响应了200 状态。

然而,这些测试只发起一个请求,这并不能充分说明系统在负载下的响应情况。为此,您需要进行负载测试