【问题标题】:k6 - storing data between setup and default functionsk6 - 在设置和默认功能之间存储数据
【发布时间】:2022-08-24 13:33:42
【问题描述】:

我想在设置部分存储一个 id,当我为端点上传文件时得到什么,之后,我需要多次取回默认部分中上传的元素。 我尝试使用带有 setter 和 getter 的辅助函数,但它在默认函数中返回未定义。 有没有什么简单的方法可以在设置函数和默认值之间存储一个数字?

【问题讨论】:

    标签: k6


    【解决方案1】:

    是的,这是可能的,它在Test Life Cycle – Setup and Teardown Stages 中有记录和解释。

    setup 函数可以返回一个对象,然后将其作为第一个参数传递给每个 VU 的默认函数:

    import http from 'k6/http';
    
    export function setup() {
      const res = http.get('https://httpbin.test.k6.io/get');
      return { data: res.json() };
    }
    export function teardown(data) {
      console.log(JSON.stringify(data));
    }
    
    export default function (data) {
      console.log(JSON.stringify(data));
    }
    

    关于您可以在设置和默认或拆卸之间传递的数据类型有一些限制,但您提到它是一个应该没问题的数字。基本上任何东西都支持,只要它可以序列化到 JSON 和从 JSON 序列化。

    对于您的用例,它可能如下所示:

    import http from 'k6/http';
    
    const file = open('./path/to/file', 'b');
    
    export function setup() {
      const uploadData = {
        fileUploadFieldName: http.file(file, 'yourfilename'),
      };
    
      const res = http.post('https://example.com/upload', uploadData);
      return { documentId: res.json('document.id') };
    }
    
    export default function (data) {
      const res = http.get(http.url`https://example.com/documents/${data.documentId}`);
      // ...
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多