这篇文件接着上篇的查询,因为自动测试要输入一些数据,再请求后验证返回数据的正确性。
如何做好测试数据的初始化呢?
准备工作,可以先做一步清数,避免干扰。
第一步:先向测试数据库中插入测试数据
第二步; 调用被测试系统发送请求 (参相应的参数。也就是刚刚出入数据库的值)
第三部:通过断言 ,验证返回的结果。
以上:总结,这个可以理解为偏向接口的测试文章,以及实现自动的思路。
实现步骤:
思考数据的随机性:也就是jmeter 的参数。现在既然要随机了,就应该想到使用随机函数。这个在各语言里面都有的,在jmeter 里面也有。
如下,选项——》调查函数助手,现在我用的是jmeter5.0 ,用如下的数据函数:
随机生成数字:${__Random(1,20,u_var1) --最小值1 最大值20 把生成的值保存到u_var1
随机生成字符串:${__RandomString(5,'abcdsfjfjfllsakda;',)} --生成长度5的字符串。
${__RandomString(2,中国馆管理论,) --生成中文
随机生成日期:${__RandomDate(,,2099-12-31,,) --第一个参数是日期格式 ,默认是yyyy-MM-DD
第二个参数是起始实际,默认是now ,第三个参数是结束实际,2099-12-31
生成现在的时间戳: ${__time(,)} -- 1553339608722 跟系统的变量START.MS=1553334247549 是一样的。有时候网址会判断30分钟内客户没有操作,就强制退出。请求的时候就会用上这个参数。另外还是如下的系统变量。
START.HMS=174407 --多少小时
START.YMD=20190323 --年月日
JMeterThread.last_sample_ok=true --线程最后的采样是否正确。
IP: ${__machineIP()}
主机名:${__machineName()}
线程号:${__threadNum}
线程组的名字:${__threadGroupName}
以上的函数先总结这些,参数化一般用随机函数。
另外还有一种方法的参数化方法
就是使用 配置元件——》随机变量 产生随机数 在输出格式出可以连接,这样就可以方便的产生变量,供使用。
使用随机变量产生的变量最为值,插入数据库。可以使用循环控制器,插入批量的数据。
最后结合ForEach 控制器,做批量的请求查询验证。
总结,以上的操作,完美的将jmeter的JDBC请求,和接口请求,数据参数化和好的关联到以前,如果是做性能测试的化,就少使用断言,如做接口测试的化,就可以加上断言。
网友评论