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 错误捕捉
编辑器介绍
脚本语言设置
快捷键介绍
常见问题
方法缺失
驱动和浏览器版本不兼容
可以添加微信:14751700162
或者联系QQ:1144890271
只需要分享博客任意两篇文章,截图通过以上任意方式联系,即可获取最新编写的《jmeter接口自动化与性能测试实战试读版》
扫描二维码关注我们的公众号,随时获取最新文章
我们专注于jmeter的接口自动化和性能专题研究,如果您在学习过程中遇到了难题,请及时联系我们,将给您一个满意的答案!
Jmeter(十七)_jmeter与java_selenium自动化的更多相关文章
- jmeter生成html格式接口自动化测试报告
jmeter生成html格式接口自动化测试报告 jmeter自带执行结果查看的插件,但是需要在jmeter工具中才能查看,如果要向领导提交测试结果,不够方便直观. 笔者刚做了这方面的尝试,总结出来分享 ...
- Jmeter+ant+Jenkins实现接口自动化平台及报告发送
项目中实现了比较方便的自动化体系,一直没时间总结一下,现抽空整理一番,废话不多说 内容如下: 一.环境准备 jmeter : 编写接口脚本,实现接口测试 ant :静默执行jmeter脚本,并生 ...
- java、python及jmeter操作redis(接口自动化必备)
redis是nosql数据库之一,其存储结构简单,提供高性能服务,所以在架构中是很常用的. 在做接口自动化测试过程中,有时也会涉及到redis,比如:发送短信验证码,我们做接口自动化测试,如何模拟发送 ...
- Jmeter系列(11)- 自动化压力测试逻辑思路及例子
为什么需要进行自动化压力测试 手动逐步加压,需要人工改变并发数,还要等待.所有,我们完全可以制定好策略,让程序自动加压,自动等待,输出报告 实现思路 Jmeter脚本(.jmx文件)- 压测逻辑 Sh ...
- Jmeter(十七)_驱动浏览器做GUI测试
jmeter不光可以完成性能测试.接口测试,现在也可以依靠WebDriver来完成GUI的功能自动化测试了,是不是很神奇? 1:下载JMeterPlugins-WebDriver-1.3.1.zip, ...
- Jmeter+Ant+Jenkins实现接口自动化(转载)
转载自 http://www.cnblogs.com/chengtch/p/6145867.html 本文转载于上面的网址,稍作修改,实用性更强. Jmeter是压力测试.接口测试工具,Ant是基于 ...
- Jmeter(十七) - 从入门到精通 - JMeter后置处理器 -上篇(详解教程)
1.简介 后置处理器是在发出“取样器请求”之后执行一些操作.取样器用来模拟用户请求,有时候服务器的响应数据在后续请求中需要用到,我们的势必要对这些响应数据进行处理,后置处理器就是来完成这项工作的.例如 ...
- Selenium系列(十七) - Web UI 自动化基础实战(4)
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
- jmeter接口自动化集成
接口自动化集成 一.jmeter基础学习 1.博客 :http://www.cnblogs.com/fnng/category/345478.html 2.博客 http://www.cnblo ...
随机推荐
- jdk命令行工具系列
虚拟机堆转储快照分析工具使用jmap等方法生成java的堆文件后jhat:虚拟机堆转储快照分析工具 导出程序执行的堆信息 jps jps -l jmap -dump:format=b,file=D:/ ...
- float与position间的区别
float与position间的区别: 个人理解为:脱离文档流不一定脱离文本流:但脱离文本流,则也脱离文档流.[如有更好的理解还望评论区一起探讨,共同学习进步]一.float 浮动(脱离文档流, ...
- IDEA插件:search with bing、search with baidu
//转载请注明出处:https://www.cnblogs.com/nreg/p/11267169.html 当项目出现错误时,经常需要复制错误信息粘贴到浏览器查询,但是手动复制再粘贴太麻烦了, 因此 ...
- Mybatis自动生成代码,MyBatis Generator
这还是在学校里跟老师学到的办法,然后随便在csdn下载一个并调试到可以用的状态. 基本由这几个文件组成,一个mysql连接的jar包.一个用于自动生成的配置文件,一个自动生成的jar包,运行jar包语 ...
- intellij IDEA github clone 指定分支代码
1.问题描述 在实际开发中,我们通常会使用idea克隆一个新项目(clone),通常情况下,我们默认克隆的是master分支,但是如果master分支只是一个空文件夹而已,真正的代码在develop分 ...
- Class.getDeclaredFields()和Class.getFields()的区别。 Class.getMethods()和Class.getDeclaredMethods()的区别。
package www.cn.extend; /** Animal * 2019/07/04 * @author Administrator * */ public class Animal { pu ...
- python内建模块发起HTTP(S)请求
一.Python2 httplib 简介:httplib实现了HTTP和HTTPS的客户端协议,一般不直接使用,在python更高层的封装模块中(urllib,urllib2)使用了它的http实现. ...
- python笔记37-史上最好用的发邮件zmail
简介 python发邮件之前用的是smtplib,代码太过于复杂,学习成本大,并且很多人学不会.之前专门写过一篇https://www.cnblogs.com/yoyoketang/p/7277259 ...
- 分析和研究Monkey Log文件
Log 在Android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...
- 浅谈前端H5自定义分享实现方法
引入jweinxin相关js文件,然后才可以做H5的分享 <script src="js/jweixin-1.2.0.js"></script> let ...