安装插件
通过 JMeter Plugins Manager 方式
离线安装插件
- 从 官网下载 Selenium/WebdriverDriver 插件
- 解压下载好的文件,将文件放置到
jmeter\lib\ext
目录下
注意:解压后的文件可能存在多个文件夹,应根据文件目录对应放置到 jmeter 目录下,并非所有文件都放置在 lib\ext 目录内。 - 重启 Jmeter
看到以上几个选项表示插件安装成功
配置本地环境
下面的配置都以 chrome 运行环境为例
1. 添加 chrome 驱动配置文件:线程组 >> 添加 >> 配置元件 >> Chrome Driver Config
2. 设置本地驱动文件 chromedriver.exe 路径
3. 设置本地浏览器 chrome.exe 路径
4. 添加 WebDriver 取样器:线程组 >> 添加 >> 取样器 >> WebDriver Sample
5. 添加脚本
// 延时
function sleep(delay) {
var start = (new Date()).getTime()
while(((new Date).getTime()-start) < delay) {
continue;
}
}
// 示例:https://jmeter-plugins.org/wiki/WebDriverSampler/?utm_source=jmeter&utm_medium=helplink&utm_campaign=WebDriverSampler#Browser
// 1. a 开始捕捉取样器计时
WDS.sampleResult.sampleStart()
// 2. 执行 Sampler 任务
WDS.browser.get('https://www.baidu.com')
// 1. b 结束捕捉取样器计时
WDS.sampleResult.sampleEnd()
// 3. 验证结果
var title = WDS.browser.getTitle()
WDS.log.info(title)
if(title != '百度一下,你就知道') {
WDS.sampleResult.setSuccessful(false)
WDS.sampleResult.setResponseMessage('Expected title to be Google')
}
/* ******************************************** 日志操作 ******************************************************* */
var d = new java.util.Date()
// 日志 https://excalibur.apache.org/apidocs/org/apache/log/Logger.html
//WDS.log.debug(d.getTime())
WDS.log.info(d.getTime())
//WDS.log.error(d.getTime())
//WDS.log.fatal(d.getTime())
/* *********************************************** 获取参数 ********************************************************** */
// 参数 在Parameters 填写 Hello Jmeter
WDS.log.info(WDS.parameters) // console log "Hello Jmeter"
WDS.log.info(WDS.args[0]) // console log "Hello"
WDS.log.info(WDS.args[1]) // console log "Jmeter"
/* ******************************************** 浏览器元素操作 ************************************************************ */
// 浏览器操作 https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/WebElement.html
var pkg = JavaImporter(org.openqa.selenium)
// 添加 cookie
WDS.browser.manage().addCookie(new pkg.Cookie('test', 'xiaoming0000'))
// 设置隐式等待
// 操作元素
var searchInput = WDS.browser.findElement(pkg.By.id('kw'))
searchInput.sendKeys(['jmeter'])
// 获取元素
var suBtn = WDS.browser.findElement(pkg.By.id('su'))
// 单击元素
suBtn.click()
// 双击元素
var actions = new org.openqa.selenium.interactions.Actions(WDS.browser)
actions.doubleClick(suBtn).perform()
//sleep(30000)
6. 测试结果展示
注意
:这个测试结果的时间统计时依据一下两个语法之间的操作
// 开始捕捉取样器计时
WDS.sampleResult.sampleStart()
/*
内部写前端操作
*/
// 介素捕捉取样器计时
WDS.sampleResult.sampleEnd()
配置远程环境 (Selenium Grid)
关于 Selenium Grid 环境如何配置一下内容不做解释,可以阅读 Selenium Grid 配置
1. 添加本地 chrome 驱动配置文件:线程组 >> 添加 >> 配置元件 >> Remote Driver Config
2. 配置远程 Selenium Grid Hub
注意
:如果无法找到 chromedriver.exe 会启动浏览器但是不会执行脚本。解决方法:将 chromedriver.exe 文件放置到 C:\Windows\Systme32 目录下
3. 脚本
Selenium Grid 运行脚本与本地环境运行脚本相同