在Jmeter中使用Selenium WebDriver完成测试

引子

以下内容选自《小强软件测试疯狂讲义》一书

正文

首先不得不感叹Jmeter的日渐强大,尤其是其插件。之前我们讲解过,Jmeter可以完成性能测试、接口测试,而这次它居然可以依靠WebDriver来完成GUI的功能自动化测试了。

下面我们就以打开我的博客地址首页为例进行讲解,大致的实现步骤如下:

1) 下载JMeterPlugins-WebDriver-1.3.1.zip,解压之后把lib目录下的所有jar文件和lib/ext目录下的JMeterPlugins-WebDriver.jar文件分别拷贝到本地Jmeter安装目录下的lib目录中和lib/ext目录中。

2) 进入本地Jmeter安装目录下的lib目录中,把httpclient、httpcore、httpmime三个jar包较低版本的删除掉,只保留较高版本的。

3) 启动Jmeter,可以看到图3.38中配置元件中新增了几个Driver Config。

图3.38 配置元件

4) 新建[email protected] - Firefox Driver Config,配置如图3.39所示。

图3.39 [email protected] - Firefox Driver Config

5) 新建[email protected] - WebDriver Sampler,编写如下代码:

//测试代码开始,需要测试的业务放在start和end之间即可。

WDS.sampleResult.sampleStart()

try{

//打开博客首页

WDS.browser.get(‘http://xqtesting.blog.51cto.com‘)

//测试代码结束

WDS.sampleResult.sampleEnd()

}catch(x){

WDS.sampleResult.sampleEnd()

//设置为结果失败

WDS.sampleResult.setSuccessful(false)

//返回信息设置为-_- sorry

WDS.sampleResult.setResponseMessage(‘-_- sorry‘)

}

6) 新建查看结果树和用表格查看结果。

7) 运行Jmeter脚本,可以看到会自动调用火狐浏览器并模拟操作。最终运行结果如图3.40所示。

图3.40 运行结果

以上是最简单的使用,算是一个尝鲜吧,其中WebDriver Sampler中代码编写可以扩展,和你编写WebDriver一样,可以利用By.id,By.cssSelector等方法进行元素的定位并操作,类似如下代码:

var pkg = JavaImporter(org.openqa.selenium)

WDS.browser.findElement(pkg.By.id(‘what‘)).sendKeys([‘xiaoqiang‘])

感兴趣的朋友可以到官网查看详细的示例代码,地址:

http://jmeter-plugins.org/wiki/WebDriverSampler/。

时间: 2024-10-20 10:37:01

在Jmeter中使用Selenium WebDriver完成测试的相关文章

【转】JMeter中使用Selenium进行测试

JMeter是使用非常广泛的性能测试工具,而Selenium是ThroughtWorks 公司一个强大的开源Web 功能测试工具.Jmeter和Selenium结合使用,就可以实现对网站页面的自动化性能测试. 这里有两种方式在Jmeter中调用Selenium测试用例.可以使用 Jmeter JUnit sampler 或者 BeanShell sampler,后一种方式包含了Selenium client 和 server,因此不需要单独启动Server. 方法一 准备工作: 将文件selen

Java中通过Selenium WebDriver定位iframe中的元素

问题:有一些元素,无论是通过id或是xpath等等,怎么都定位不到. 分析:这很可能是因为你要定位的元素被嵌套在了当前页面的一个iframe元素中,Selenium对iframe中的元素有特殊的定位规则,WebDriver不能够直接进行定位. 解决办法:我们要把这个iframe元素找出来,让WebDriver转移到这个iframe元素上,之后再让WebDriver对iframe中的元素进行定位. 因为最近在用Java来做一些东西,所以就顺便说一下Selenium在Java环境下的使用,总共分三步

Jmeter中的几个重要测试指标释义

一.基本概念 1.测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器. 2.线程组:代表一定数量的并发用户,它可以用来模拟并发用户发送请求.实际的请求内容在Sampler中定义,它被线程组包含.可以在“测试计划 ->添加->线程组”来建立它,然后在线程组面板里有几个输入栏:线程数.Ramp-Up Period(in seconds).循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程.如有8个线程,Ramp-Up

在Jmeter中使用自定义编写的Java测试代码

分类: 测试工具 2007-01-19 15:02 8204人阅读 评论(3) 收藏 举报 测试javaloadrunner编译器importtemplates 我们在做性能测试时,有时需要自己编写测试脚本,很多测试工具都支持自定义编写测试脚本,比如LoadRunner就有很多自定义脚本的协议,比如"C Vuser","Java Vuser"等协议.同样,Jmeter也支持自定义编写的测试代码,不过与LoadRunner不同的是,Jmeter没有自带编译器,需要借助

Selenium Webdriver重新使用已打开的浏览器实例

本文中的样例均使用SoapUI ,关于SoapUI+Webdriver 的配置,请看上一篇: http://blog.csdn.net/wwwqjpcom/article/details/51174664 我弄这个的本意是为了在SoapUI中更好地编写自动化用例,因为我的业务流程有的很长,有7-8个页面. 我想把代码不集中在一个Groovy 脚本里,想在第二个脚本中继续使用第一个脚本中打开的浏览器.这样便于 维护和定位问题. 也还有一种情况是我打开了浏览器,,操作了系统到某一个界面后,我写了这个

转载 基于Selenium WebDriver的Web应用自动化测试

转载原地址:  https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中,需要大量的手动操作来验证某些功能.开发人员在开发过程中,需要访问其应用并且验证其功能是否正常运行,反复调试重复验证.系统维护人员也需要经常访问其应用,以确保系统的正常运行.如上所述的这些操作需要花费大量的时间和人力,如能引入自动化测试代替人工重复操作,将极大地提高团队的生产效率.在本文中,我们将介绍

selenium webdriver 是怎么工作的?

首先我们来看一个经典的例子: 搭出租车 在出租车驾驶中,通常有3个角色: 乘客 : 他告诉出租车司机他想去哪里以及如何到达那里 对出租车司机说: 1.去阳光棕榈园东门 2.从这里转左 3.然后直行 200米,第一个红绿灯右转 4.再直行 50米,到阳光棕榈园东门 5.停车 出租车司机 : 他按照客户的要求; 出租车司机使用方向盘和汽车踏板驾驶汽车送乘客去目的地 出租车司机操作汽车: 1.插钥匙点火,启动汽车引擎 2.开一小段路后左转 3.加速,直行200米 4.右转,直行50米 5.减速停车,到

selenium webdriver 学习笔记(二)

selenium webdriver 一.定位一组元素: webdriver可以很方便的使用findElement 方法来定位某个物定的对象.不过有时候我们却要定位一组对象,这时候就需要使用findElements方法. 应用场景: 1. 批量操作对象,比如将页面上所有checkbox都选择上: 2.先获取一组对象,再在这组对象中过滤出需要定位的一些对象.比如定位页面上所有checkbox,然后再选择最后一个. 二.多层框架.窗口定位 switch_to_frame() switch_to_wi

Python3 Selenium自动化web测试 ==> 第八节 WebDriver高级应用 -- 结束Windows中浏览器的进程

学习目的: 掌握WebDriver的高级应用 正式步骤: # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.support.ui import Select from selenium.webdriver.common.keys import Keys from selenium.common.excep