首页 > 解决方案 > 如何在不同环境中运行性能测试脚本以了解负载影响

问题描述

我最近使用 loadimpact.com 进行性能测试,编写了一个 lua 脚本并能够在 loadimpact.com 中运行。现在如何在不同的环境中运行我的 lua 脚本。我需要参数化环境 URL,我可以使用 csv 文件。但是不希望为不同的环境保留 csv 文件。请任何人帮助我。

谢谢

标签: performance-testing

解决方案


两个建议。您可以在 3.0 版(Lua 脚本)中使用 util.dns_remap()

-- Remap loadimpact.com to IP 195.178.177.179
util.dns_remap("example.com", "195.178.177.179")

-- All requests to mysite.com will now be sent to 195.178.177.179
local response = http.request_batch({
    {"GET", "http://example.com/"}
})

您应该考虑将 v4.0 和 k6 (k6.io) 与 JavaScript 脚本结合使用。从命令行触发测试时,您可以将环境变量传递给测试/脚本以测试不同的环境。不过,这将需要重写您现有的脚本。例如

k6 cloud -e MY_HOSTNAME=dev.example.com script.js

以下脚本是 script.js:

import { check, sleep } from "k6";
import http from "k6/http";

export default function() {
    var r = http.get(`http://${__ENV.MY_HOSTNAME}/`);
    check(r, {
        "status is 200": (r) => r.status === 200
    });
    sleep(5);
}

这将允许您利用负载影响云服务并更优雅地解决原始问题。您可以为您的测试传递一个新的 ENV 变量,或者如果您在 CI 管道中自动化测试,您可以传递一个新的 ENV。如果每个构建都创建自己独特的环境,这将非常方便。


推荐阅读