Jmeter可以通过WebDriver来完成UI自动化测试,也可以测试浏览器端对系统的压力,需要以下jiar包

基本配置

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

下载地址 https://jmeter-plugins.org/downloads/old/

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

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

4: 新建Chrome Driver Config

5:新建 WebDriver Sampler 之后就可以编写一些selenium脚本了测试交流群  317765580

Selenium脚本解析

try {

     var pkg = JavaImporter(org.openqa.selenium, org.openqa.selenium.support.ui)

##此处是导入support.ui的类,对应的是selenium-support.jar

     WDS.log.info('WDS Name:' + WDS.name)

     WDS.sampleResult.sampleStart()

     WDS.browser.navigate().to("https://qas.cttq.com")

##调用navigate方法,跳转url,对应的方法在selenium-remote-driver.jar中

     WDS.log.info('Browser Title:' + WDS.browser.getTitle())

##调用getTitle方法,捕捉title,对应的方法在selenium-remote-driver.jar中

     WDS.log.info('Browser CurrentUrl:' + WDS.browser.getCurrentUrl())    

     WDS.log.info('Cookie:' + WDS.browser.manage().getCookies())   

     WDS.log.info('Request Header: ' + WDS.sampleResult.getRequestHeaders())

     var what = WDS.browser.findElement(pkg.By.name('username'))

     what.sendKeys(['8107000'])

##定位name元素,触发sendKeys事件,填写登录名

     var where = WDS.browser.findElement(pkg.By.name('password'))

     where.sendKeys(['000000'])

##定位name元素,触发sendKeys事件,填写登录名

     var button = WDS.browser.findElement(pkg.By.id('login-btn'))

     button.click()

##定位id元素,触发click事件,点击登录

##上面调用的几种封装元素和事件,对应的方法在selenium-remote-driver.jar中

     var wait = new pkg.WebDriverWait(WDS.browser, 5000)

##调用了WebDriverWait,对应的方法在selenium-support.jar中。数值为ms

wait.until(pkg.ExpectedConditions.presenceOfElementLocated(pkg.By.xpath("/html/body/div/header/div[1]/div/img")))

##调用前面的wait 5s,强制等待元素出现

     var results = WDS.browser.findElements(pkg.By.xpath("/html/body/div/header/div[1]/div/img"))

     WDS.log.info('Result: ' + results)

     if(results.empty) {

         WDS.sampleResult.successful = false

         WDS.sampleResult.responseMessage = “登录失败“

     }

     else{WDS.log.info("登录")}

##断言元素是否捕捉成功

     WDS.sampleResult.sampleEnd()

 } catch(ex) {

     WDS.log.error(ex)

     WDS.sampleResult.successful = false

     WDS.sampleResult.responseMessage = 'There were no results returned'

     WDS.sampleResult.sampleEnd()

 }

##try catch 错误捕捉

编辑器介绍

脚本语言设置

快捷键介绍

常见问题

方法缺失

驱动和浏览器版本不兼容

 

点击这里,加入QQ群

可以添加微信:14751700162
或者联系QQ:1144890271

只需要分享博客任意两篇文章,截图通过以上任意方式联系,即可获取最新编写的《jmeter接口自动化与性能测试实战试读版》

扫描二维码关注我们的公众号,随时获取最新文章

我们专注于jmeter的接口自动化和性能专题研究,如果您在学习过程中遇到了难题,请及时联系我们,将给您一个满意的答案!

 

最新文章

  1. Keepalived+Nginx架构整理版
  2. (20160604)开源第三方学习之CocoaLumberjack
  3. html table动态合并单元格 js方法
  4. Genymotion出现unknown generic error和This may occur if you are using a proxy错误的解决方案
  5. X5学习笔记—给单元格添加颜色
  6. [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(七)
  7. 【JUnit4.10来源分析】6 Runner
  8. Erlang内存吃紧之解决思路
  9. BZOJ_3675_[Apio2014]序列分割_斜率优化
  10. .netcore 模块积累
  11. redis总结问题
  12. Java数据类型、赋值、类型转换、==运算
  13. Azure DevOps Server:Git权限设置
  14. PANIC: Missing emulator engine program for 'x86' CPU.
  15. 第五次Scrum meeting
  16. oracle 和 mysql 和区别
  17. Oracle创建Rman备份专用账户
  18. Declaration Merging with TypeScript
  19. 观察者模式和java委托
  20. linux下vim命令具体解释

热门文章

  1. kubernetes--配置文件
  2. Vue父子,子父,非父子组件之间传值
  3. 英语secuerity证券
  4. linux上SVN出现 "Unable to connect to a repository at URL 'svn://xx.xx.xx.xx/xxx' 和 No repository ...
  5. 【Intellij Idea】Intellij Idea 某个提示功能disable,想恢复怎么做
  6. mongodb replica-set
  7. oracle删除表空间和用户
  8. Alpha2的项目互评互测
  9. P1856 [USACO5.5]矩形周长Picture[扫描线]
  10. 对当前目录下的所有APK包执行Monkey测试,并自动保存Crash日志