Jmeter(十七)_jmeter與java_selenium自動化


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的接口自動化和性能專題研究,如果您在學習過程中遇到了難題,請及時聯系我們,將給您一個滿意的答案!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM