Jmeter系列(十七)

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 错误捕捉

编辑器介绍

脚本语言设置

快捷键介绍

常见问题

方法缺失

驱动和浏览器版本不兼容

本文分享自微信公众号 - 测试驿栈(uhz2008_2008)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )