自动化测试
自动化测试的意思就是:本来是人去做测试的,现在让机器来帮你做测试。
优点体现在:
- 节约成本
- 提高效率
- 减少人工去做事
- 提高复用性
UI自动化
1、关于UI自动化大家常见工具或者框架有:AutoIt V3 、selenium、uiautomator2、Appium、adb、ATX-Test、Airtest、ATXServer2、STF、TestCafe、Robot Framework、QTP、Playwright 等等
UI 自动化测试
背景
UI自动化测试,能确保你的 UI 界面逻辑操作正常运行。UI 界面的情况是非常多的,不同用户使用不同数据在不同的浏览器和端上做一些操作,不定因素非常多,所以 UI 自动化测试是一个对于 UI 界面检验的一个非常好的办法,比较 UI 测试的工作量是非常大的。
UI 自动化测试,让你增加许多测试用例、测试套件,减少重复操作,提升测试的整体的效率。
面临的挑战
- UI 的频繁更改:页面的 UI 很可能随时更改的,这意味着自动化测试的配置需要频繁做出改变。
- 多种浏览器的兼容性:UI 页面涉及到许多浏览器的展示,不同浏览器就会有不同的情况产生。
- UI 测试工具的选择:UI 测试需要选取一些 UI 测试工具来进行测试,这样可以解放双手,提高效率。
selenium使用
Selenium 是一个免费(开源)的自动化测试框架,用于验证不同浏览器和平台上的 web 应用程序。你可以使用多种编程语言,如 Java、C#、Python 等来创建 Selenium 测试脚本。使用Selenium测试工具进行的测试通常被称为 Selenium Testing。
痛处1,selenium webdriver 需要与浏览器版本一致,解决办法自动下载驱动,但是有网络等其它原来肯能无法下载
//下载浏览器驱动
WebDriverManager.chromedriver().setup();
痛处2,selenium.NoSuchElementException: no such element 无法定位
元素表达式正确但是始终需要切换表达,具体解决办法请参考如下两边文章
第一个链接:本人在实战经常遇到一些问题
selenium+webdriver+HTML 经常遇到的问题_html页面调用selenium-webdriver_Aimin2022的博客-CSDN博客
第一个链接:主要记录selenium基础知识
selenium + appium 自动化测试_自动化测试selenium_Aimin2022的博客-CSDN博客
代码演示(已封装)
/**
* 刷新浏览器---刷新
*/
public void refreshB(String time) {
try {
driver.navigate().refresh();
} catch (Exception e) {
log.error("刷新浏览器出现错误,报错内容:" + e.fillInStackTrace());
}
}
/**
* 默认元素定位方法用xpath进行输入----输入
* @param xpath 定位xpath
* @param content 输入内容(匹配输入验证/订单号/流水号/指定编码)
*/
public void inputContent(String xpath, String content) {
try {
String param= updateParamValue(content);
Thread.sleep(900);
//log.info("输入内容:"+content);
WebElement element = driver.findElement(By.xpath(xpath));
element.clear();
element.sendKeys(replaceParam(param));
} catch (Exception e) {
log.error(format("向%s元素输入%s失败", xpath, content)+",报错内容是:"+e.fillInStackTrace());
}
}
/**
* 默认使用xpath方法定位元素点击----点击
* @param xpath 位置
*/
public void click(String xpath) {
try {
driver.findElement(By.xpath(xpath)).click();
setPass();
} catch (Exception e) {
log.error(format("点击元素:%s 失败,报错内容:",xpath)+e.fillInStackTrace());
setFail();
}
}