目录

1 背景介绍.. 1

1.1 协议脚本(接口)参数化.. 1

1.2 界面UI脚本参数化.. 1

1.3 平台自动处理的一些参数.. 1

2 过参数列表添加参数值.. 1

2.1 随机参数.. 1

2.2 固定参数.. 1

2.3 顺序递增参数.. 1

2.4 日期格式参数.. 1

3 通过上传CSV文件添加参数值.. 1

3.1 文件格式(CSV格式,以UTF-8编码).. 1

3.2 将参数文件上传平台.. 1

4 通过关联参数获取.. 1

4.1 协议/接口脚本关联参数.. 1

4.2 界面UI脚本关联参数.. 1

4.2.1 通过检查点提取元素的值.. 1

4.2.2 通过检查点提取元素的属性值.. 1

4.2.3 用户实现js读取参数值(cookie、变量、数据库).. 1

5 平台参数举例.. 1

5.2 按读取顺序.. 1

 

 

1 背景介绍

平台提供参数化(也称数据驱动)功能,即每次自动化次数或性能测试的虚拟用户发送的数据都不一样。当发送数据内容里面存在“{key}”符号时,平台自动将key值替换为对应的实际参数值,例如:

1.1 协议脚本(接口)参数化

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

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

1.2 界面UI脚本参数化

定位元素的属性或者步骤名称,或者检查点都支持设置参数化{}”符号

1.3 平台自动处理的一些参数

平台自动处理的参数每种协议都不同,如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 日期格式参数

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

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

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

3 通过上传CSV文件添加参数值

注:当脚本界面的参数列表与上传的参数文件都存在同一个参数名时,以参数文件为主,即参数文件的值将覆盖脚本里参数列表。

3.1 文件格式(CSV格式,以UTF-8编码)

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

    

3.2 将参数文件上传平台

在测试计划里将选择参数文件

如果存在多个执行器,平台自动按参数文件个数平均分配给多个执行器。

如果需要每个执行器使用不同的参数文件

注:当脚本界面的参数列表与上传的参数文件都存在同一个参数名时,以参数文件为主,即参数文件的值将覆盖脚本里参数列表。

4 通过关联参数获取

4.1 协议/接口脚本关联参数

从接收到的响应消息里提取特定的内容,作为参数给后面的请消息使用。详细参照 关联参数

4.2 界面UI脚本关联参数

4.2.1 通过检查点提取元素的值

例子:下图通过元素的id定位到元素后提取元素的文本值,将值保存到username

4.2.2 通过检查点提取元素的属性值

例子:下图通过元素的id定位到元素后提取元素的loginid属性的值,将值保存到arr_loginid参数里

4.2.3 用户实现js读取参数值(cookie、变量、数据库)

用户自己实现js代码,可以读取浏览器的cookie,或页面的元素、全局变量、浏览器数据库等等,然后调用d.savePara保存变量到参数(例如下面的参数名为a

5 平台参数举例

假设性能测试运行4个用户user1user2user3user4;或者自动化测试运行4次脚本,有参数列表如下:

 

Para1

Para2

1

1

1

2

2

2

3

3

3

4

4

4

5.2 按读取顺序

   平台按先后顺序启动user1user2user3user4几个用户(或者4次自动化测试),每个用户线程(自动化测试)方式运行:

 

Para1

Para2

user1

1

1

user4

2

2

user3

3

3

user2

4

4

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