• 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的接口自动化和性能专题研究,如果您在学习过程中遇到了难题,请及时联系我们,将给您一个满意的答案!

     

  • 相关阅读:
    Markdown
    DNS解析流程
    maven 的各种命令
    ES6初体验——(1)let和const命令
    table相关的选择器 & children()与find()的区别 & 选择器eq(n)与nth-child(n)的差异
    Java MD5加密类
    POI操作Excel异常Cannot get a text value from a numeric cell
    MyEclipse+SSH开发环境配置
    JdbcTemplate详解
    Spring配置声明
  • 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/8568716.html
Copyright © 2020-2023  润新知