Javascript k6脚本:如何解析用于HTTP查询的文件信息

Javascript k6脚本:如何解析用于HTTP查询的文件信息,javascript,fileparsing,k6,Javascript,Fileparsing,K6,我对k6是新手,对JS是新手。我试图从一个平面文件中读取一个列表,该平面文件是我从DB中的一列导出的。我想打开这个文件,并在列表中循环,将每个项目作为HTTP调用的查询参数追加。我想不出怎么继续 例如,如果这是我的文件: employees.txt 01111 02222 06666 04444 09999 &这是我的k6脚本(perf employee.js) 任何关于继续操作的指导都将不胜感激。open()一个简单的字符串(如果使用b标志,则为二进制),因此您只需使用JavaScripts

我对k6是新手,对JS是新手。我试图从一个平面文件中读取一个列表,该平面文件是我从DB中的一列导出的。我想打开这个文件,并在列表中循环,将每个项目作为HTTP调用的查询参数追加。我想不出怎么继续

例如,如果这是我的文件:

employees.txt

01111
02222
06666
04444
09999
&这是我的k6脚本(perf employee.js

任何关于继续操作的指导都将不胜感激。

open()
一个简单的字符串(如果使用
b
标志,则为二进制),因此您只需使用JavaScript
string.split()
方法将其转换为数组(它自己的数组行中的每一行)即可对其进行解析。或者,如果您想读取更复杂的数据文件,请使用JSON和
JSON.parse()
方法将其直接转换为JavaScript对象—请查看上面链接中的第一个示例

然后通过使用k6,您可以执行以下操作:

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

var data = open("./employees.txt").split(/\r?\n/);

export let options = {
    vus: 3,
    duration: "5s"
};


export default function () {
    var employee = data[__ITER % data.length];
    console.log(`VU ${__VU} on iteration ${__ITER} has employee ID ${employee}...`)
    http.get(`http://www.example.com/employee?employee_num=${employee}`);
    sleep(1);
};
您应该可以在脚本输出中看到如下内容:

INFO[0001] VU 2 on iteration 0 has employee ID 01111... 
INFO[0001] VU 1 on iteration 0 has employee ID 01111... 
INFO[0001] VU 3 on iteration 0 has employee ID 01111... 
INFO[0002] VU 2 on iteration 1 has employee ID 02222... 
INFO[0002] VU 1 on iteration 1 has employee ID 02222... 
INFO[0002] VU 3 on iteration 1 has employee ID 02222... 
INFO[0003] VU 2 on iteration 2 has employee ID 06666... 
INFO[0003] VU 3 on iteration 2 has employee ID 06666... 
INFO[0003] VU 1 on iteration 2 has employee ID 06666... 
INFO[0004] VU 2 on iteration 3 has employee ID 04444... 
INFO[0004] VU 1 on iteration 3 has employee ID 04444... 
INFO[0004] VU 3 on iteration 3 has employee ID 04444... 
INFO[0005] VU 2 on iteration 4 has employee ID 09999... 
INFO[0005] VU 1 on iteration 4 has employee ID 09999... 
INFO[0005] VU 3 on iteration 4 has employee ID 09999... 
open()。或者,如果您想读取更复杂的数据文件,请使用JSON和
JSON.parse()
方法将其直接转换为JavaScript对象—请查看上面链接中的第一个示例

然后通过使用k6,您可以执行以下操作:

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

var data = open("./employees.txt").split(/\r?\n/);

export let options = {
    vus: 3,
    duration: "5s"
};


export default function () {
    var employee = data[__ITER % data.length];
    console.log(`VU ${__VU} on iteration ${__ITER} has employee ID ${employee}...`)
    http.get(`http://www.example.com/employee?employee_num=${employee}`);
    sleep(1);
};
您应该可以在脚本输出中看到如下内容:

INFO[0001] VU 2 on iteration 0 has employee ID 01111... 
INFO[0001] VU 1 on iteration 0 has employee ID 01111... 
INFO[0001] VU 3 on iteration 0 has employee ID 01111... 
INFO[0002] VU 2 on iteration 1 has employee ID 02222... 
INFO[0002] VU 1 on iteration 1 has employee ID 02222... 
INFO[0002] VU 3 on iteration 1 has employee ID 02222... 
INFO[0003] VU 2 on iteration 2 has employee ID 06666... 
INFO[0003] VU 3 on iteration 2 has employee ID 06666... 
INFO[0003] VU 1 on iteration 2 has employee ID 06666... 
INFO[0004] VU 2 on iteration 3 has employee ID 04444... 
INFO[0004] VU 1 on iteration 3 has employee ID 04444... 
INFO[0004] VU 3 on iteration 3 has employee ID 04444... 
INFO[0005] VU 2 on iteration 4 has employee ID 09999... 
INFO[0005] VU 1 on iteration 4 has employee ID 09999... 
INFO[0005] VU 3 on iteration 4 has employee ID 09999... 

令人惊叹的!谢谢+1我们好!谢谢+1.