在LoadRunner中运行Selenium脚本,实质上是将基于界面的功能自动化测试,转化为一种能够模拟大量用户并发操作的性能测试手段。这能让你直观地观察在负载下,Web应用前端的响应表现以及后端服务器的承载能力。
虽然LoadRunner官方提供了相应的集成功能,但要顺利且高效地完成这项工作,需要注意一些重要的配置和技巧。主要流程和重要配置点,你可以参考下面的流程图来建立一个整体的认识:
环境准备和前置检查
在开始创建和运行场景之前,扎实的基础工作能避免很多后续的错误。
准备专用负载生成器:强烈建议你使用专用的计算机作为负载生成器来运行Selenium脚本。因为并行运行多个浏览器实例(如ChromeDriver或FirefoxDriver)会消耗大量CPU和内存资源。尽量避免在LoadRunner Controller所在的本地机器上运行,这能保证测试的稳定性并更真实地模拟负载。
配置WebDriver环境:在用于执行Selenium脚本的负载生成器计算机上,必须确保已正确设置WebDriver(如ChromeDriver或GeckoDriver)的环境变量,以便脚本能够调用并控制浏览器。
启用Headless模式:为了显著减少内存消耗并改善在Controller中运行Selenium脚本的体验,官方推荐为Selenium脚本启用Headless(无头)模式。这样在测试执行期间不会打开可见的浏览器界面。
你可以在脚本中添加如下代码来启用:
java
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
driver = new ChromeDriver(options);
添加脚本和配置
环境准备好后,接下来就是在LoadRunner Controller中引入和配置你的Selenium脚本。
添加Selenium脚本:
在Controller中新建场景,点击"添加脚本"。
从"脚本类型"下拉列表中,选择"Selenium脚本"。
点击"浏览"并选择你的Selenium脚本文件(目前LoadRunner主要支持 .java 扩展名的脚本)。支持的测试类型包括简单的Java脚本、JUnit、TestNG等。
配置运行时设置:
在场景中右键单击脚本名称并选择"运行时设置"。
如果你的脚本依赖于额外的Classpath或TestNG XML文件,需要在"Selenium"节点的设置中,将参数值指向相应的文件名。
设计场景和执行测试
这是将功能测试脚本转化为负载测试的重要一步。
设计负载场景:
Selenium脚本的迭代次数和并发用户数主要由LoadRunner的场景设计来控制。
可以在"全局计划"中定义设置。对于持续时间,通常建议设置为"完成前一直运行"。
考虑到浏览器资源消耗巨大,在启动Vuser时,建议使用有限数量的Vuser,并逐步增加。
事务生成:
了解LoadRunner如何从你的脚本生成事务很重要,这关系到后续结果分析。
对于含Main函数的简单Java脚本,每次执行均视为一个事务。如果使用计划执行脚本,则事务数等于迭代次数。
对于JUnit和TestNG脚本,事务由批注@Test指示。一个脚本执行一次,事务数等于脚本中找到的@Test批注数。例如,一个包含2个@Test批注的脚本,每次迭代会生成2个事务。
执行和监控:
配置完毕后,切换到"运行"选项卡,点击开始场景按钮运行测试。
密切关注LoadRunner标准图表,如"正在运行的Vuser"、"事务响应时间"等,获取性能数据。