我试图找出一种方法,在k6中发出两个单独的请求,每个请求相对于另一个请求是有限的。例如,我创建了两个POST请求,我希望其中一个在测试运行的90%时间内命中,另一个在10%时间内命中,以模拟在同一个HTTP服务器上的请求分别命中一个较忙碌和较不繁忙的端点。
jtw3ybtb1#
通过指定constant arrival rate executor,使用scenarios以不同的请求速率调用不同的测试函数。您必须手动预先计算每个端点的比率,但是您可以轻松地定义一个函数来根据总的基本比率计算正确的比率。
const TOTAL_RPS = 100; function rps(percentage) { return TOTAL_RPS * percentage; } export const options = { scenarios: { busy: { exec: 'busy_endpoint', executor: 'constant-arrival-rate', duration: '10m', preAllocatedVUs: 50, rate: rate(0.9) // 90% }, lazy: { exec: 'less_busy_endpoint', executor: 'constant-arrival-rate', duration: '10m', preAllocatedVUs: 5, rate: rate(0.1), // // 10% } } }; export function busy_endpoint() { // will be called 90 times per second (90% of 100 rps) http.get('http://example.com'); } export function less_busy_endpoint() { // will be called 10 times per second (10% of 100 rps) http.get('http://example.com'); }
1条答案
按热度按时间jtw3ybtb1#
通过指定constant arrival rate executor,使用scenarios以不同的请求速率调用不同的测试函数。
您必须手动预先计算每个端点的比率,但是您可以轻松地定义一个函数来根据总的基本比率计算正确的比率。