录制时能登录、能查询,回放却提示会话失效,或者停在某个请求上。LoadRunner脚本遇到这类问题,往往要回到请求内容和服务器响应中找原因。下面介绍“LoadRunner怎么创建性能测试脚本LoadRunner脚本运行失败怎么排查”。操作以VuGen 26.1英文界面的Web-HTTP/HTML协议为例,录制一个登录后查询的流程。
一、LoadRunner怎么创建性能测试脚本
VuGen用来创建和调试虚拟用户脚本。Web-HTTP/HTML脚本回放的是请求,不会像浏览器一样逐步点击页面。本例登录一次,再重复查询。
1、创建脚本并选择协议
协议要与测试对象的通信方式对应。网页使用HTTP请求,可以从Web-HTTP/HTML开始;其他协议或需要浏览器执行的流程,要另行选择。
①启动VuGen,点击【File】→【New Script and Solution】。
②选择【Single Protocol】→【Web-HTTP/HTML】。
③在【Script Name】中填写名称,点击【Create】。
2、录制登录和查询操作
初始化、业务动作和退出放在不同段落,重复执行的范围更清楚。vuser_init、vuser_end不随普通Action迭代反复运行。
①点击【Record】,在【Record】中选择【Web Browser】,在【Application】中选择浏览器。
②填写【URL address】,将【Record into action】设为vuser_init,点击【Start Recording】。
③登录完成后,在录制工具栏切换到Action,执行一次查询。
④切到vuser_end,完成退出操作,点击【Stop Recording】,等待脚本生成。
3、给要测量的业务添加事务
事务记录一段业务的耗时。查询事务应包含完整的查询请求,开始和结束位置需要配对,名称也要一致。
①将光标放在查询请求前,点击【Design】→【Insert in Script】→【Start Transaction】,填写事务名称。
②在查询请求结束后插入【End Transaction】,填写相同名称。
4、把查询条件改成参数
录制时输入的查询条件是固定值。参数化后,回放可以使用多条测试数据;服务器返回的会话标识则需要关联,不能随意换成数据文件里的值。
①选中脚本中的查询条件,右击→【Replace with Parameter】→【Create New Parameter】。
②创建【File】类型参数,填写名称,打开【Parameter Properties】添加测试数据。
③将【Select next row】设为【Sequential】,【Update value on】设为【Each Iteration】。
5、先回放一次
第一次回放用于验证流程,并不代表已经完成性能测试。请求能否正确执行,需要结合日志和业务结果判断。
①按F4,打开【Run Logic】,将【Number of iterations】设为1。
②按F5回放,在【Output】的【Replay】日志中查看结果,按Ctrl+S保存脚本。
二、LoadRunner脚本运行失败怎么排查
前面的登录失败,后面的查询可能接连报错。第一处错误及其前后的响应,比最后一行“运行失败”更有用。
1、找到第一次失败的请求
编译错误与请求回放错误要分开看。前者常见于修改后的代码,后者需要检查请求参数、响应内容及连接情况。
①打开【View】→【Output】,查看编译或回放日志中的第一处错误。
②按F4打开【Log】,启用【Extended log】,勾选【Parameter substitution】和【Data returned by server】。
③再按F5回放,核对失败请求的实际参数值、响应内容及错误行号。
2、会话失效时检查动态值
会话ID、令牌等可能在每次登录后改变。录制当天能使用的值,回放时未必有效。关联需要从本次响应中取值,再传给后续请求。
①点击【Design Studio】→【Correlation】→【Replay&Scan】。
②选中相关动态值,在【Details】中核对它来自哪个响应、用于哪些请求。
③点击【Correlate】,检查生成的提取步骤是否位于返回该值的请求之前,后续请求是否使用了关联参数。
④再次回放;仍取不到值时,检查实际响应及关联边界、正则表达式或JSON查询条件。
3、参数为空或账号不匹配时检查数据
用户名和密码分别随机取行,可能拼出不存在的账号。数据行不足、列选错,或者分隔符不一致,也会让请求使用错误的值。
①打开【Parameter Properties】,核对【Select Column】、【File Format】、【Select next row】及【When out of values】。
②账号与密码使用同一数据表的对应行;本例在初始化阶段登录一次,登录参数的【Update value on】设为【Once】。
4、连接失败或超时时检查回放环境
浏览器能访问,不代表脚本使用了相同的代理和认证条件。单纯延长超时,可能只是让失败出现得更晚。
①在回放机器上确认目标地址可访问,并核对测试环境是否变更。
②按F4,打开【Proxy】,检查代理地址、端口和认证配置。
③在【Preferences】中查看连接及下载超时设置;先处理网络、代理或服务异常,再按实际响应时间调整。
三、LoadRunner脚本调通后还要检查什么
一次成功只说明当前数据和流程能执行。重复运行能暴露状态问题,业务检查则能避免把错误页面当成成功结果。
1、检查第二次查询是否正常
本例只重复Action中的查询。如果业务要求每次重新登录,登录和退出的位置就需要跟着测试流程调整。
①在【Run Logic】中将【Number of iterations】改为3,重新回放。
②检查每次查询结果及参数变化,确认没有依赖上一次遗留的数据。
2、添加业务结果检查
HTTP状态为200,也可能返回登录页或业务错误信息。查询成功需要有明确依据,例如响应中的结果标题或稳定字段。
①打开【View】→【Snapshot】,选择查询步骤,点击【HTTP Data】查看响应。
②选中稳定的成功文本,右击→【Add Text Check Step】,确认检查内容并点击【OK】。
③核对生成的web_reg_find位于目标请求之前,重新回放,确认检查能识别预期结果。
④调试完成后,在【Log】中恢复适合负载运行的日志级别,再进入并发测试准备。
总结
希望这篇“LoadRunner怎么创建性能测试脚本LoadRunner脚本运行失败怎么排查”能帮到大家。性能测试关系到软件在实际使用中的表现,测试人员的投入,最终是为了让用户用得顺畅,让团队对产品更有信心。专业工具能帮助我们看到问题,但如何理解结果、判断影响,仍需要对业务有足够了解。日常工作中的认真核对和沟通,同样值得重视。希望大家在学习与项目实践中有所收获,让测试结果能为产品改进提供可靠依据。如果有LoadRunner软件选用方面的需求,欢迎联系我们咨询。
