说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/104115733
文章目录
三、增强脚本
7.Block 块技术
7.1 什么是 Block 块
- Block 块用于实现局部迭代多次
7.2 Block 块的实现
- "补录"脚本
✔ 录制脚本时注意最后点击【Book another】。 - 首先在 Script View 中分解出多个 Action。
- 添加 Block 块。
- 设置 Block 块中的 Action 的迭代次数。
✔ 选中 Block 然后设置 Block Properties 才能设置迭代次数
★ 若选中 Action 或任意一个 Block 设置迭代次数,则迭代次数为所有 Action 的次数。 - 始发地和目的地参数设置
✔ Sequential,Each occurrence - 参数转存到其他参数
✔ lr_save_string(lr_eval_string("{参数名 1}"),“新参数名 2”);
【例 1】实现打开网站 1 次,登录 1 次,查票并订票 3 张,退出 1 次
- 首选在webtours订票脚本中,没有录制再定一张,所以这里博主新建一个脚本,录制再定一张,然后拷贝到订票脚本中,对比之前的脚本
- 复制到订票脚本中如下位置即可
- 删除cdtaogang订票数据,设置迭代次数为1次,运行脚本没有任何问题
- 接下来则是最关键的对action进行拆分,拆分为打开网站、登录、搜票、订票、退出(需要注意的是最好不要跟事务重名),拆分的过程为依次拆分,比如先对action进行重命名为open(也就是打开网站),然后对open右击新建操作为login(登录),然后右击login新建操作为search(搜票)依次下去
- 拆分完成action如下
- 然后在open中将打开网站之外的脚本剪切到login中,注意不要将return 0;剪切了
- 然后将搜票的脚本放在search中依次类推
- 拆分完成后,保存脚本并运行,查看日志成功并且写入数据成功后,才能证明拆分的没有问题
- 因为要实现订票三次,所以整个脚本跑一遍,订票跑三遍,这里需要用到block块,首先删除订票book动作
- 点击插入块,通过选中该Block块点击下移操作到search搜票操作下
- 紧接着插入操作,插入book订票即可
- 最后选中Block块,点击属性,设置迭代次数为3即可
- 运行脚本,查看是否完成三张票的订购情况,发现每次都是订的同一航班号
- 解决方法是,在出发地和目的地参数化配置中,需要设置每次出现,而不是每次迭代
- 再次运行脚本,查看日志发现,三次订票事务都是以失败结束,出发地和目的地为London 到 Paris,可是到检查点时则变成了Denver 到 London了,原因则是再cong和dao出发地和目的地这两个参数化在脚本中不止使用一次,而参数化配置则使用的是每次出现取值,所以导致选择的出发地目的地与检查点中的出发地目的地不一致
- 解决方法则是,将cong和dao转存到参数中,这样就可以避免订票时选择的出发地和目的地与订票检查点的出发地目的地不一致
- 删除cdtaogang订票数据,执行脚本,没有任何问题
【例 2】进行负载测试,200 人每人订票 3 张
- 因为要使用200个账号进行登录并订票,博主之前把webtours注册脚本负载测试注册的200个用户给删除了,现在在场景中进行负载测试并生成200个用户数据
- 回到webtours订票脚本中的login中,对用户名进行参数化
- 对密码进行参数化
- 不要忘记在登录检查点中的文本内容中的用户名进行参数化
- 完成后,保存脚本,跑一次脚本,查看日志没有问题则才能进行场景中的负载测试
- 全局计划如下
- 场景执行完成,查看失败的事务,可以进行分析,首先打开网站通过的事务肯定大于登录通过的事务,因为网站没打开肯定无法登录,至于订票为什么通过的事务那么多,原因很简单,因为做了三次迭代嘛
- 查看执行负载测试中的错误,大多都是服务器连接问题或者是响应其次就是没有找到匹配项,因为200个用户同时开始访问登录网站并完成三次连续订票,肯定会出错误的
- 查看vuser虚拟用户中失败的日志,可以很清楚看到在订票过程中出现错误,服务器崩溃连接不上
8.使用脚本操作数据库
8.1 选择协议
- 录制脚本前,选择 Web Service 协议。
8.2 连接数据库
- 这里以连接 SQL Server 为例。
8.3 创建记录集
8.4 打印查询结果
8.4.1 直接打印
- Action 的选项
✔ RESET
★ 将光标设置为数据集的第一条记录。
✔ REMOVE
★ 释放数据集分配的内存。
✔ PRINT
★ 将整个数据集的内容打印到重放日志和其他测试报告摘要中。
★ 默认显示 100 行。