JMeter和WebDriver都是应用于软件测试领域的工具,可以用于自动化测试和性能测试。
JMeter是一个开源的性能测试工具,它可以模拟多种负载类型、协议和服务器,并提供了图形化界面。JMeter通过使用多线程来模拟并发用户,然后对被测系统进行压力和性能测试,从而评估系统的性能指标。JMeter还支持一些插件,例如WebDriver Sampler插件,可以结合Selenium WebDriver(下文会介绍)来进行Web应用程序的性能测试。
WebDriver是一个自动化测试工具,最初是由Selenium项目开发的,现在已经成为了W3C推荐的标准。WebDriver提供了一组API,允许开发人员使用多种编程语言(如Java、Python、Ruby等)来编写自动化测试脚本。WebDriver的主要功能是控制浏览器,使得测试人员可以模拟用户在浏览器上执行的各种操作,例如单击、输入、拖放、JavaScript执行等等。因此,WebDriver可以用于各种Web应用程序的自动测试。
将JMeter和WebDriver结合使用可以实现Web应用程序的性能测试和自动化测试。开发人员可以使用Selenium WebDriver来模拟用户在Web应用程序上执行的操作,然后使用JMeter来模拟多个用户同时执行这些操作,从而对Web应用程序的性能进行评估。这种结合使用也有助于优化测试脚本和提高测试覆盖率。
之前文章也有介绍Jmeter的使用方式,这次我们聊聊JMeter与WebDriver的结合。
打开Jmeter后需要安装WebDriver的插件,前提需要将WebDriver的包下载完成。
要在 JMeter 中安装 WebDriver Sampler 插件,可以按照以下步骤进行操作:
-
下载 WebDriver Sampler 插件的压缩包,可以从插件的官方网站(https://jmeter-plugins.org/wiki/WebDriverSampler/)下载到最新版本的插件包。
-
将下载的压缩包解压缩到 JMeter 的 lib/ext 目录下。如果你不知道 JMeter 的 lib/ext 目录在哪里,可以启动 JMeter 并打开“Options”菜单,选择“Plugins Manager”,在弹出的对话框中找到“Custom Plugin Path”一项,显示的路径即为 lib/ext 目录的路径。
-
启动或重启 JMeter,确保插件已经被正确加载。可以打开“Options”菜单下的“Plugins Manager”来检查是否成功安装了 WebDriver Sampler 插件。
-
如需在测试计划中使用 WebDriver Sampler 插件,在测试计划上右键选择“添加” -> “Sampler” -> “WebDriver Sampler”,就可以添加该插件到测试计划中了。
注意:安装和使用 WebDriver Sampler 插件需要满足一定的系统和软件要求,如 JDK 版本、浏览器驱动版本等。
随后打开jmeter就能在插件工具中找到啦~~
如果要将jmeter和webdriver结合还需要下载唤起浏览器的驱动程序。可在chromedriver下载路径:https://sites.google.com/a/chromium.org/chromedriver/downloads,下载电脑上对应的谷歌版本驱动,进行配置,我的浏览器是113版本,所以下载对应113版本的驱动
随后添加需要进行启动的程序
放置启动脚本及参数设置
动态取值用户名和密码,进行登录操作,附代码【目前这段代码还不支持多用户同时唤起浏览器】
var pkg = JavaImporter(org.openqa.selenium)
var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait)
var conditions = org.openqa.selenium.support.ui.ExpectedConditions
// 读取 CSV 文件
var file = new java.io.File("D:/apache-jmeter-5.1.1/bin/user.txt");
var reader = new java.io.FileReader(file);
var br = new java.io.BufferedReader(reader);
var line;
while ((line = br.readLine()) != null) {
var fields = line.split(":");
// 从 CSV 中读取用户名和密码
var username = fields[0];
var password = fields[1];
WDS.sampleResult.sampleStart();
// 打开登录页面并填写表单
WDS.browser.get("http://XXXX/dap-client/#/Signin");
var username_email = WDS.browser.findElement(pkg.By.cssSelector("input[placeholder='Email']"));
username_email.sendKeys(username);
var password_field = WDS.browser.findElement(pkg.By.cssSelector("input[placeholder='Password']"));
password_field.sendKeys(password);
var loginbtn = WDS.browser.findElement(pkg.By.className("el-button--large"));
loginbtn.click();
// 等待页面加载完成
// new support_ui.WebDriverWait(WDS.browser, 5000).until(conditions.titleContains('your application title'));
WDS.sampleResult.sampleEnd();
// 关闭浏览器会话
// WDS.browser.quit();
}
br.close();
脚本准备完成后,点击启动就会唤起浏览器进行登录操作【脚本中的地址,记得更换为各位想要的地址】
下次我将分享 JMeter 和 WebSocket 的相关内容。WebSocket 是一种 HTML5 新增的协议,用于实现浏览器与服务器之间的全双工通信,并具有较低的延迟和带宽占用。在使用 WebSocket 进行性能测试时,需要使用支持 WebSocket 的工具来模拟客户端请求并收集服务器响应,而 JMeter 就是其中一种常用工具。
在分享中,我会介绍如何使用 JMeter 和 WebSocket Sampler 插件来进行 WebSocket 性能测试,包括安装配置 WebSocket Sampler 插件、创建测试计划、编写测试脚本、运行测试计划以及分析测试结果等方面的内容。同时,我也会分享一些注意事项和常见问题的解决方法,帮助大家更好地掌握 WebSocket 性能测试的技巧和方法。
敬请期待下一次的分享!