1 背景介绍

工具提供参数化功能,即每个用户发送的数据存在不同。当发送数据内容里面存在“{key}”符号时,工具自动将key值替换为对应的实际参数值,例如:

上图是一个HTTP请求消息,里面存在多个“{}”符号,即存在多个需要替换为实际值的参数:HostCookieContent-LengthusernamepasswordvalidateCode,工具在发送数据前会自动将这些参数替换为对应的参数值。

上面参数对应的实际参数值来源方式不同,包括:参数列表配置、从服务器收到的响应消息提取(即关联参数,如validateCode)、工具自动处理(如Content-Length);

1.1 关联参数

该文重点是介绍参数列表配置,因此不对关联参数进行介绍,关联参数可以参照《kylinPET 关联参数》文档

1.2 工具自动处理

工具自动处理的参数每种协议都不同,如HTTP支持:HostCookieContent-Length等等;SIP支持:Content-LengthCall-ID等等。详细参照各个协议对应的文档。

2 添加参数

点击工具 -> 参数列表或者工具栏按钮。包括:随机参数、固定参数、顺序递增参数、从文件/数据库导入参数、日期类型参数。

2.1 随机参数

1)     最小值与最大值为随机值的范围,如150表示150之间的随机值;

2)     前缀表示在随机值前面加上的字符串

3)     总长度:0表示不固定,为“前缀+随机值”的长度;其他值表示固定参数值的总长度,如果“前缀+随机值”的长度小于设置的长度,则在前缀后添加0补充,如长度设置为5,则abc1值变为abc01,长度为6则为abc001;如果“前缀+随机值”的长度大于设置的长度,则值为“前缀+随机值”,不会删除多余部分。

2.2 固定参数

每个用户该参数的值都一样

2.3 顺序递增参数

1)     初始值:为该参数值的第一个值

2)     步值:后面递增的步值,如初始值为1,步值为2,则依次为1,3,5,7,…

3)     前缀:表示在值前面加上的字符串

4)     总长度:与上面的“随机参数”一样意义。

2.4 从文件/数据库导入参数

2.4.1 文件格式

点击然后在弹出的文件选择框选择参数文件, csv(以逗号分隔)格式。

    

 

2.4.2 将参数文件上传平台

在场景配置里将脚本引用的参数选择绑定

如果存在多个压测机,平台自动按参数文件个数平均分配给多个压测机。

如果需要每个压测机使用不同的参数文件

2.4.3 从文件导入(脚本编辑器只支持100个参数)

列名代表参数名,下面表格每一行代表参数值,该功能类似数据库。

注意:

1、   每个用户按读取顺序读取每一行记录,到达结束后则从第一个值开始

2.4.4 从数据库导入(脚本编辑器只支持100个参数)

1)        数据库:包括OracleMysqlSysbaseSQL ServerDB2,不包括的数据库请自己导出文件再通过文件方式导入。

2)     注:工具自动加载ext/ db目录下对应数据库目录的jdbc驱动jar包,如果是jdbc驱动问题,请自己更换最新的jar

3)     开始行与结束行:读取结果集里的开始行到结束行,即限制了读取记录数,结束行为0表示一直到结束。

4)     配置数据库信息后,先点击测试连接测试下是否连接数据库成功。

5)     SQL命令:

select * from tableName   表示所有字段都为参数名

select a, b from tableName表示只读取a,b字段为参数名

2.4.5 从数据库导入举例(脚本编辑器只支持100个参数)

例如数据库test存在表help_topic,表字段及记录如下图:

  1) 导入所有字段,字段名即为参数名

select * from help_topic

点击确定加载数据如下图:

其中表的字段名为参数名,由于没限制记录数,因此加载了全部记录

  2) 只导入表部分字段,限制记录数

select name,help_category_id from help_topic

只加载了100条数据,加载字段只有namehelp_category_id

  3) 将表的字段添加别名,即参数名为别名

如表字段namehelp_category_id,如果希望加载到工具的参数名为ab,则只需要为namehelp_category_id分别添加别名ab

select name as a,help_category_id as b from help_topic

2.5 日期格式参数

当参数值是由运行时的实际决定,即每个用户运行时的参数值为运行当时的系统时间(动态变化),可将参数添加为日期格式。

上图表示值为Long格式,即为时间戳,单位为毫秒。

上图表示值为yyyy-MM-dd HH:mm:ss格式,即将时间戳转为某种格式。

3 用户读取方式

3.1 举例说明几种方式

假设运行4个用户user1user2user3user4,有参数列表如下:

 

Para1

Para2

1

1

1

2

2

2

3

3

3

4

4

4

3.1.2 读取顺序

   工具按先后顺序启动user1user2user3user4几个用户,每个用户线程方式运行:

 

Para1

Para2

user1

1

1

user4

2

2

user3

3

3

user2

4

4

这种情况,仍然是保证每个用户使用不同的参数,所以不影响性能测试。