【系列】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);
}
致力于软件测试技术提高,你的点赞、评论和转发,是对我莫大的鼓励!