多语言展示
当前在线:302今日阅读:176今日分享:34

自动化测试:[2]巧妙运用函数构造测试数据

日常测试中,模拟现网环境大数据量测试是必不可缺的一个环节。作为测试人员往往需要制作大数据量的测试数据来满足测试要求。编写存储过程录入数据,不失为一个节省时间的好方法。向大家推荐MYSQL数据库中几个不错的函数,使存储过程编写起来简单高效。以下就根据实例给大家讲解下。
工具/原料
1

CONCAT函数

2

mod函数

方法/步骤
1

例子1:CONCAT函数,使数据名称不再重复。见下图:

2

详解:concat函数将字符串参数串联到一起。如:concat(‘’a’’,’’b’’,’’c’’) 结果为:abc 上面的例子,使用comcat函数将池塘名称不重复的插入。

4

详解:mod函数返回余数。上面的例子,js_device_info_T表中设备类型字段,0代表采集器,1代表控制器,i mod 2 返回的余数只有0和1两种可能。从而实现插入的设备数据呈现不同类型。

5

例子3:在一层while循环中使用mod 和 div函数,date_format函数使数据插入不同的时间戳

6

详解:例子3达成的目的是:1000台设备每10分钟上报一条数据,插入js_device_online_t表,模拟一天的数据量。1、time = DATE_FORMAT(time+ interval  10 MINUTE,’%Y-%m-%d %H:%i:%s’); date_format函数将时间戳字段格式化为:%Y-%m-%d %H:%i:%s形式。Time+interval 10 minute参数,可模拟时间戳每10分钟插入一条,并且达到50分钟后自动进位1小时的功能。效果如图:

7

2、mod函数取余数,div函数取整数(1)while i < 144 * 1000 do 每10分钟上报一条数据,一台设备一天上报144条数据。模拟1000台设备上报一天的数据量。所以循环144*1000次

8

(2)set j = i div 144 i从0开始循环到144时,j=1 insert into js_device_online_t        values(j+1,’20′,’10′,’220′,’220′,’15′,DATE_FORMAT(time+ interval 10 MINUTE,’%Y-%m-%d %H:%i:%s’));               这样保证j+1=1时,循环144次,插入144条数据。                        j+1=2 时,再循环144次,插入144条数据。        达到每台设备每天插入144条数据的效果。

9

(3)if i mod 144 = 0 then set time = ’2013-11-18 23:50:00′;         为了保证所有上报的数据都在一天,所以每到144的整数倍都将时间         重新置为23:50:00。这样当time+10分钟时,变成00:00:00

注意事项
1

CONCAT函数

2

MOD函数

推荐信息