performance-testing - 如何在不同环境中运行性能测试脚本以了解负载影响
问题描述
我最近使用 loadimpact.com 进行性能测试,编写了一个 lua 脚本并能够在 loadimpact.com 中运行。现在如何在不同的环境中运行我的 lua 脚本。我需要参数化环境 URL,我可以使用 csv 文件。但是不希望为不同的环境保留 csv 文件。请任何人帮助我。
谢谢
解决方案
两个建议。您可以在 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。如果每个构建都创建自己独特的环境,这将非常方便。
推荐阅读
- javascript - 为什么 g 元素在 svg 之外渲染
- python - Python到Php使用http请求发布数据
- firefox - Selenium webdriver 打开默认的 Firefox 配置文件而不是预定义的配置文件
- unity3d - Unity Parent 的 SetActive() 会影响孩子吗?
- python - 如何从 Firebase 存储中下载 json 格式的数据?
- android - 具有布局膨胀或屏幕顶部的底部表
- typescript - 未设置响应。这是否在未作为承诺返回的异步调用中使用
- ruby-on-rails - Audited - 获取可审计对象的实例
- php - 正则表达式忽略(停止捕获)封装在方括号中的字符串
- vue.js - 如何使用 vue2-google-maps 正确地反转地理编码