使用jmeter做Web端自动化测试

2022-06-21 16:32:10 浏览数 (1)

前言

熟悉jmeter的同学应该都知道,jmeter是做服务端性能测试的工具。jmeter还可以进行Web端自动化测试,这个功能也是我最近才知道的,个人认为比较有意思。参考了网上一些文章,文本就尝试体验下如何使用。

下载WebDriver依赖

核心还是需要WebDriver依赖才能启动网页。

  1. 下载地址(https://jmeter-plugins.org/downloads/old/)JMeterPlugins-WebDriver-1.1.2 。

2.将JMeterPlugins-WebDriver-1.1.2libext中的*.jar拷贝到D:apache-jmeter-2.13libext下。

3.将JMeterPlugins-WebDriver-1.1.2lib中的*.jar拷贝到D:apache-jmeter-2.13lib下。

添加插件配置元件

重新jmeter后,在配置元件中可以看到Chromdriver Driver Config,说明插件配置成功。

配置本地Chrome Driver地址,Chrome Driver需要提前下载好。

添加WebDriver Sampler

在取样器中选择WebDriver Sampler采样器。

WebDriver Sampler采样器支持多种语言(java、beanshell、js),我们使用js语言编写自动化测试代码。

测试流程: 打开网页 -> 点击搜索 -> 输入文字 -> 点击完成

代码片段

代码语言:javascript复制
var pkg = JavaImporter(org.openqa.selenium); //WebDriver classes
var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait); //WebDriver classes
var wait = new support_ui.WebDriverWait(WDS.browser, );
var timeunit = java.util.concurrent.TimeUnit


WDS.sampleResult.sampleStart(); //captures sampler's start time
WDS.sampleResult.getLatency();
WDS.log.info("Sample started");


WDS.browser.get('http://duckduckgo.com'); //opens website specified in 'http://duckduckgo.com'
WDS.log.info("Sample ended - navigated to duckduckgo.com");

var searchField = WDS.browser.findElement(pkg.By.id('search_form_input_homepage')); //saves search field into searchField
searchField.click(); //clicks search field

searchField.sendKeys(['blazemeter']); //types word "blazemeter" in field
WDS.log.info("Searched for BlazeMeter");

var button = WDS.browser.findElement(pkg.By.id('search_button_homepage')); //Find Search button
button.click(); //Click Search Button
WDS.log.info("Clicked on the search button");

var link = WDS.browser.findElement(pkg.By.cssSelector('#r1-0 > div > h2 > a.result__a > b')); //also saves selector as variable but uses CSS.
link.click(); //Click the search result's Link

//设置整个事务的总的请求超时时间
WDS.browser.manage().timeouts().pageLoadTimeout(,timeunit.SECONDS);

WDS.sampleResult.sampleEnd();

调试脚本的时候,打开debug日志比较方便调试。

总结

基于jmeter的扩展插件WebDriver并且结合js编写测试用例,可以实现WEB端自动化测试。jmeter是可以提供继承Samlper采样器开发扩展的采样器的,WebDriver插件开发原理也是基于这个特性来开发的。 不过使用jmeter做WEB端自动化测试是能做但是不适合。所以如果有开发能力的话,还是写自动化脚本实现吧。

0 人点赞