有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

上传参数文件

通过上传 csv 参数文件,您可以动态引用其中的测试数据,供脚本里的变量使用。 这样,当施压机并发执行这段代码,每条请求能动态、逐行获取 csv 里的每行数据,作为请求参数使用。
参数定义
默认 csv 首行作为参数名。在该模式下,PTS 读取数据时,会跳过第一行。
若不用 csv 文件首行做参数名,则可如下图所示,取消勾选“首行作为参数名”,然后勾选该参数文件所在的行,页面会展开一个参数名编辑框,供您自行编辑参数名。


参数使用
在代码中,您可以用参数名作为变量名,获取变量值。
每个 VU 每次迭代会按照顺序取 csv 的一行数据。
当 csv 文件被读取完最后一行数据后,下次会回到首行,继续循环读取。
参数文件组合与切分
若压测并发量很大,可勾选 “切分文件”,将大文件切分后,分给每个施压机使用。
参数文件只在当前地域进行切分。如果进行多地域压测,每个地域都会有一份完整的相同的参数文件,参数文件在当前地域的压测资源间进行切分。
一个场景可上传多个 csv 参数文件,进行跨文件参数组合。
不同 csv 文件的列名(参数名)需保持全局唯一。
若不同 csv 文件的行数不同,默认采用行数大的作为基准,行数少的 csv 文件会自行复制到跟基准文件相同行数,保证每次 VU 每次迭代的数据都是可预测的。
注意:
在进行多地域压测时,每个地域都会分配一份完整的参数文件,参数文件只在当前地域的压测资源间进行均匀切分
例如:用户某次压测场景包含5个压测资源,A 地域3个压测资源,B 地域2个压测资源。压测场景中包含参数文件 user.csv 并勾选了切分参数文件,那么,A、B 两地域都会有一个完整的 user.csv,A 地域的每个压测资源包含1/3 user.csv,B 地域每个压测资源包含1/2 user.csv。

使用参数文件

简单模式场景

在简单模式的场景中,您可以用 ${} 的形式,将参数文件里的参数,作为请求的变量来使用。 以下面的 dataset.csv 参数文件为例:
MyKey,MyValue
key1,value1
key2,value2
参数文件上传完成后,您即可获得参数文件里的可用变量,如下图所示。
然后,您就可在 GET 请求的请求参数里,使用这些变量:


或者在 POST 请求的请求体里,使用这些变量:




脚本模式场景

代码示例如下,用 dataset.get("MyKey"),可从 csv 文件获取参数名/列名为 MyKey 的参数值,作为请求体里的 value 值。
import dataset from 'pts/dataset';

export default function () {
const value = dataset.get("MyKey")
const postResponse = http.post("http://mockhttpbin.pts.svc.cluster.local/post", {data: value});
console.log(postResponse)
};