如何在loadimpact中按顺序运行测试?

时间:2018-11-22 08:58:09

标签: k6

我们有2个我们要在负载影响下进行测试的API,第二个API是所谓的动态目标,它是基于从第一个API的响应中获得的数据构建的。

因此,我们要按顺序运行此测试。我们怎样才能做到这一点?

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

    export default function() {
            let res, res_body, claim_url
            res = http.batch([req])
            check(res[0], {
                 "form data OK": function (res) {
                        console.log(res.status);
                        claim_url = JSON.parse(res.body)
                        console.log(claim_url.details.claim_uri)
                        return false;
                 }
    });

在不同的功能中对不同的API进行分组是否有帮助?

1 个答案:

答案 0 :(得分:1)

以任何方式,您都不限于每次默认函数迭代的单个http请求。因此,您可以使用上一个请求中的任何内容,然后执行一个新请求。

Wikipedia中有一个示例,但这是另一个简单的示例:

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

export default function() {
        let res, res_body, claim_url
        res = http.get(req);

        check(res, { // check that we actually didn't get error when getting the url
                  "response code was 200": (res) => res.status == 200,
             });
        claim_url = JSON.parse(res.body) // if the body is "http://example.org" for example
        res2 = http.get(claim_url); // use the returned url
        check(res2, { // here it's res2 not res
                  "response code was 200": (res) => res.status == 200,
             });
        // do more requests or checks

});