当前位置: 首页 > news >正文

JMeter做UI自动化

插件安装

  • 搜插件selenium,安装

添加config

  • 添加线程组

  • 右键线程组->添加->配置元件->jp@gc - Chrome Driver Config

  • option和proxy不解释了

添加Sampler

  • 右键线程组->添加->取样器->jp@gc - WebDriver Sampler

  • script language 选择:JavaScript(可惜没有python)

  • 界面说明

  • Name - for the test that each Web Driver Sampler will have. This is used by the reports.

  • Parameters - is optional and allows the reader to inject variables used in the script section.

  • Script - allows the scripter to control the Web Driver and capture times and success/failure outcomes

DEMO代码及解释

https://jmeter-plugins.org/wiki/WebDriverSampler/
  • 示例代码

// 相当于python的from  import   java的importvar pkg = JavaImporter(org.openqa.selenium)// Start capturing the sampler timing 开始捕获取样WDS.sampleResult.sampleStart()// 代码块WDS.browser.get('http://114.116.2.138:8090/forum.php')
WDS.browser.findElement(pkg.By.id('ls_username')).sendKeys('admin')
// 等价于 WDS.browser.findElement(org.openqa.selenium.By.id('ls_username')).sendKeys('admin')WDS.browser.findElement(pkg.By.id('ls_password')).sendKeys('123456')
// js语法定义了一个 sleep函数 ,让你从python平滑过渡到 jsvar sleep = function(time) {var timeOut = newDate().getTime() + parseInt(time, 10);while(newDate().getTime() <= timeOut) {}
}WDS.browser.findElement(pkg.By.cssSelector('.pn.vm')).click()
sleep(3000)// 断言部分if(WDS.browser.getCurrentUrl() != 'http://114.116.2.138:8090/forum.php') {WDS.sampleResult.setSuccessful(false)WDS.sampleResult.setResponseMessage('Expected url to be XXX')
}
else{WDS.sampleResult.setSuccessful(true)
}// Stop the sampler timing 停止取样WDS.sampleResult.sampleEnd()
  • WDS就是Web Driver Sampler

  • 麻烦的是你可能并没有自动补齐(好像可以出来,但没研究),这个对象有哪些属性方法

  • 深入的研究要看

https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/package-summary.html
  • 比如显式等待的一个应用

var pkg = JavaImporter(org.openqa.selenium, org.openqa.selenium.support.ui)
var wait = new pkg.WebDriverWait(WDS.browser, 5, 0.5)
wait.until(pkg.ExpectedConditions.presenceOfElementLocated(pkg.By.cssSelector('ul.suggestions')))

关于WDS的一些属性

  1. WDS.name - is the value provided in the Name field (above).

  1. WDS.vars - JMeterVariables - e.g.

vars.get("VAR1"); vars.put("VAR2","value"); vars.remove("VAR3"); vars.putObject("OBJ1",new Object());

  1. WDS.props - JMeterProperties (class java.util.Properties) - e.g.

props.get("START.HMS"); props.put("PROP1","1234");

  1. WDS.ctx - JMeterContext

  1. WDS.parameters - is the value provided in the Parameters field (above).

  1. WDS.args - is an array of the strings provided in the Parameters field, but split by the space ' ' character. This allows the scripter to provide a number of strings as input and access each one by position.

  1. WDS.log - is a Logger instance to allow the scripter to debug their scripts by writing information to the jmeter log file (JMeter provides a GUI for its log entries)

  1. WDS.browser - is the configured Web Driver browser that the scripter can script and control. There is detailed documentation on this object on the Selenium Javadocs page.

  1. WDS.sampleResult - is used to log when the timing should start and end. Furthermore, the scripter can set success/failure state on this object, and this SampleResult is then used by the JMeter reporting suite. The JMeter javadocs provide more information on the API of this object

http://www.lryc.cn/news/18662.html

相关文章:

  • Kibana与Elasticsearch
  • [数据结构]:03-栈(C语言实现)
  • 1W+企业都在用的数字化管理秘籍,快收藏!
  • 多模态机器学习入门——文献阅读(一)Multimodal Machine Learning: A Survey and Taxonomy
  • 通过哲学家进餐问题学习线程间协作(代码实现以leetcode1226为例)
  • 消息队列--Kafka
  • 外盘国际期货:我国当代年轻人结婚逐年下降
  • Ubuntu 22.04.2 发布,可更新至 Linux Kernel 5.19
  • 论文阅读笔记——《室内服务机器人的实时场景分割算法》
  • Hive学习——自定义函数UDFUDTF
  • 自学前端,你必须要掌握的3种定时任务
  • __stack_chk_fail问题分析
  • linux 查看当前系统用户
  • AI算法创新赛-人车目标检测竞赛总结05
  • CSS 浮动【快速掌握知识点】
  • 在做自动化测试前需要知道的
  • 机器人学习的坚持与收获-2023
  • RSA签名加密解密
  • 【C语言】数据的存储
  • 「RISC-V Arch」SBI 规范解读(上)
  • 2023年全国最新二级建造师精选真题及答案5
  • 365智能云打印怎么样?365小票无线订单打印机好用吗?
  • 细说react源码中的合成事件
  • 【架构师】零基础到精通——架构演进
  • Hadoop命令大全
  • 一文带你快速初步了解云计算与大数据
  • STM32 OTA应用开发——通过USB实现OTA升级
  • JavaScript高级程序设计读书分享之6章——6.2Array
  • MySQL递归查询 三种实现方式
  • Servle笔记(7):过滤器