【系列】selenium自动化测试集锦---生成二维码用例的简单判定

【系列】selenium自动化测试集锦

生成二维码用例的简单判定

在自动化测试过程中,对生成二维码功能的测试,可以采用什么方法呢?

思路分析:

现在一般使用的是截图对比法:生成二维码后,进行元素截图,将该图跟原始图进行对比,如果图片完全相同,则判定成功,否则失败。

经调研考察,该方法复杂不稳定,实现难度高且成功率低,故直接舍去,于是小编另辟蹊径,设计出了下面一种方法:

1、获取生成的二维码图片的src

WebElement qrcode = 此处为二维码图片的元素位置,请自行完善;
String imgsrc = qrcode.getAttribute("src");

2、判定该src是否满足预设的规则

Assert.assertTrue(imgsrc.contains("此处为src包含的特有字符串,请自行完善"));

2-1 如果该src不满足预设的规则,说明二维码图片位置出错,可直接判定用例执行失败

2-2 如果该src如果满足预设的规则,则继续进行下一步

3、打开一个页签,将该src作为网址输入进去,打开该网页

4、判断该网页上的内容是否正常显示

4-1 如果网页内容正常显示,则可判定用例执行成功

4-2 如果网页内容显示异常,则可判定用例执行失败

该方法的适用范围是:二维码图片的src属性,可以通过网页直接访问打开图片,如若不能,则该方法失效。

核心源码奉上:

WebElement qrcode = 此处为二维码图片的元素位置,请自行完善;
String imgsrc = qrcode.getAttribute("src");  
try {
	//新开一个标签页:使用CTRL+T
	KeyBoardAction.setCtrlTKey();
	ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
	driver.switchTo().window(tabs.get(1)); 
	driver.get(imgsrc);
	Thread.sleep(2000);
	Assert.assertTrue(!driver.getPageSource().contains("无法访问此网站"));
	driver.close();
	//返回原始标签页		
	driver.switchTo().window(tabs.get(0)); 			 
}catch (Exception e) {
	e.printStackTrace();
}	  

KeyBoardAction类的setCtrlTKey方法如下:

public static void setCtrlTKey() {
		Robot robot=null;
		try {
			robot=new Robot();
		} catch (AWTException e) {
			e.printStackTrace();
		}
		robot.keyPress(KeyEvent.VK_CONTROL);
		robot.keyPress(KeyEvent.VK_T);
		robot.keyRelease(KeyEvent.VK_CONTROL);
		robot.keyRelease(KeyEvent.VK_T);
	}

致力于软件测试技术提高,你的点赞、评论和转发,是对我莫大的鼓励!

本文作者在头条上的原创链接:https://www.toutiao.com/i6813596501885846029/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初心与使命

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值