如何在 K6 中为函数应用迭代条件

How to apply iterations condition for function in K6

我想执行一次注销功能和多次迭代的下拉功能。我需要在下面的代码中进行哪些更改。

        executors: {
            logout: {
                type: 'per-vu-iterations',
                exec: 'logout',
                vus: 1,
                iterations: 1,
                startTime: '30s',
                maxDuration: '1m',
                tags: { my_tag: 'LOGOUT'},
            },
       }};
    export function logout() {
        group('Logout API', () => {
            loginFunctions.logout_api();
        })
    }
    export function dropDown() {
        group('Drop Down API', () => {
        loginFunctions.dropDown_api();
        })
    }
    export default function () {
        logout();
        dropDown();
    }

同样,如果没有默认功能,它也无法正常工作。正在获取 执行程序默认值:函数 'default' 未在导出中找到 此错误

不确定您在哪里看到 executors,这是选项的旧名称,在 #1007 was merged and released. The new and correct name is scenarios: https://k6.io/docs/using-k6/scenarios

之前

因此,为了回答您的问题,代码应如下所示:

import http from 'k6/http';
import { sleep } from 'k6';

export let options = {
    scenarios: {
        logout: {
            executor: 'per-vu-iterations',
            exec: 'logout',
            vus: 1, iterations: 1,
            maxDuration: '1m',
            tags: { my_tag: 'LOGOUT' },
        },
        dropDown: {
            executor: 'per-vu-iterations',
            exec: 'dropDown',
            vus: 10, iterations: 10, // or whatever
            maxDuration: '1m',
            tags: { my_tag: 'LOGOUT' },
        },
    }
};

export function logout() {
    console.log("logout()");
    sleep(1);
    // ...
}
export function dropDown() {
    console.log("dropDown()");
    sleep(1);
    // ...
}

不过,根据您的用例,logout() 代码的最佳位置实际上可能是在 teardown() 生命周期函数中?有关详细信息,请参阅 https://k6.io/docs/using-k6/test-life-cycle