JMeter-jp@gc - WebDriver Sampler实现UI自动化(JavaScript)

一、Background

脚本语言:JavaScript
WebDriver版本:JMeterPlugins-WebDriver-1.4.0.zip
JMeter版本:5.1.1 r1855137
WebDriver Sampler Documentation:Documentation

二、脚本

//import packages
var pkg = JavaImporter(org.openqa.selenium, org.openqa.selenium.support.ui);
var wait = new pkg.WebDriverWait(WDS.browser,8);
var timeunit = java.util.concurrent.TimeUnit;

//开始
WDS.sampleResult.sampleStart(); 
WDS.sampleResult.getLatency();

//打开 URL
WDS.browser.get('http://127.0.0.1/');

//登录
//输入账号密码
var userName = WDS.browser.findElement(pkg.By.id('account')); //定位方式:'id'/'name'/'xpath'/'cssSelector'…
userName.click(); //点击
userName.sendKeys(['123456']);//传值
var userPassword = WDS.browser.findElement(pkg.By.id('password'));
userPassword.click(); 
userPassword.sendKeys(['000000']);
//点击登录按钮
var login = WDS.browser.findElement(pkg.By.xpath('//*[@id="root"]/div/div/div[3]/div/form/button'));
login.click();
//登录后,需要调用"WDS.browser.getWindowHandle()" 方法才能定位登录后的页面的元素、
WDS.browser.switchTo().window(WDS.browser.getWindowHandle());
//定义sleep函数
function sleep(delay) {
  var start = (new Date()).getTime();
  while ((new Date()).getTime() - start < delay) {
    continue;
  }
}
sleep(5000);//等待5秒(等待页面加载,否则下一步的元素无法定位到)
//设置整个事务的总超时时间
WDS.browser.manage().timeouts().pageLoadTimeout(20,timeunit.SECONDS);
//断言登录后的页面是否加载成功
if(WDS.browser.getTitle()!='首页') {
    WDS.sampleResult.setSuccessful(false);
    WDS.sampleResult.setResponseMessage('Expected title to be 首页');
}else{
  WDS.log.info(WDS.browser.getTitle()+" 加载成功!");  //true
}

//点击“人员管理”
var Melts = WDS.browser.findElement(pkg.By.xpath('//*[@id="root"]/div/section/header/div[2]/ul/li[2]/span'));
Melts.click();
sleep(1000);
//断言人员管理是否加载成功(这里不能直接用上面的Melts获取断言的文本,会报错)
var str = WDS.browser.findElement(pkg.By.xpath('//*[@id="root"]/div/section/header/div[2]/ul/li[2]/span')).getText();//获取用来断言的元素的文本
//方式一:
// if(str!='人员管理') {
//     WDS.sampleResult.setSuccessful(false);  
//     WDS.sampleResult.setResponseMessage('Expected title to be 人员管理');
// }else{
//   WDS.log.info(WDS.browser.getTitle()+" 加载成功!");  //true
// }
//方式二:
if(str.match('人员')) {
  WDS.log.info(WDS.browser.getTitle()+" 加载成功!");  //true
}else{
  WDS.sampleResult.setSuccessful(false);
  WDS.sampleResult.setResponseMessage('Expected title to be 人员管理');
}
//方式三:
// if(str.search('人员')!= -1) {
//   WDS.log.info(WDS.browser.getTitle()+" 加载成功!");  //true
// }else{
//   WDS.sampleResult.setSuccessful(false);
//   WDS.sampleResult.setResponseMessage('Expected title to be 人员管理');
// }

//end,关闭浏览器
WDS.sampleResult.sampleEnd();

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值