背景:因Studio中存在较多类型机器人+相机等组合,为覆盖全部测试用例,特编写UI自动化,节省人工,提升效率
)
- Pictures_PNG 因定位元素方式为图片定位,所以新建该文件夹,主要存放定位元素时所用到的图片,便于管理
- ReadExcel 记录测试用例运行所需配置参数,在运行时,根据Excel中的配置情况决定自动化运行的流程用例及次数
- src 主要存放测试脚本,C_Case中为运行用例类,C_Main中为方法类
- test-output 测试运行完成后,自动生成测试报告在该文件夹下
- TestNG.xml 配置测试用例
-
使用sikuli通过图片定位方式,sikuli是什么
Sikuli 是由 MIT 的研究团队发布的新型图形化编程技术。它以图像检索技术为基础,提供了一套基于 Jython 的脚本语言以及集成开发环境。使用者可利用屏幕截图直接引用 GUI 元素进行编程,完成交互操作。
String path = "/home/wangw/IdeaProjects/CobotSys/Pictures_PNG/";
//打开程序
public void start() throws FindFailed {
if (path != null) {
scr.wait(path + "cion.png", 5);
scr.click(path + "cion.png");
}
else System.out.print("图片路径未找到");
}
注:通过图片路径找到截图,根据截图在程序中找到对应功能位置,根据脚本给出的click或其他命令,进行操作
2.使用TestNG测试框架,TestNG是什么
TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器)。
使用注记: @BeforeTest、@Test、@AfterTest、@DataProvider
思路:BeforeTest及AfterTest来进行初始化及收尾工作,使用Test及DataProvider通过读取Excel来实现用例执行
dataProvider的实现
新建读取Excel类:Add_Config
public class Add_Config{
//通过配置,添加机器人Excel
public String filePath;
public List list = new ArrayList();
public Add_Config(String filePath) {
this.filePath = filePath;
}
public List readExcel() throws IOException, BiffException {
//创建输入流
InputStream stream = new FileInputStream(filePath);
//获取Excel文件对象
Workbook rwb = Workbook.getWorkbook(stream);
//获取文件的指定工作表 默认的第一个
Sheet sheet = rwb.getSheet(0);
//行数(表头的目录不需要,从1开始)
for(int i=1; i<sheet.getRows(); i++){
//创建一个数组 用来存储每一列的值
String[] str = new String[sheet.getColumns()];
Cell cell = null;
//列数
for(int j=0; j<sheet.getColumns(); j++){
//获取第i行,第j列的值
cell = sheet.getCell(j,i);
str[j] = cell.getContents();
}
//把刚获取的列存入list
list.add(str);
}
return list;
}
}
新建用例执行类:CobotSys_SFlow.java
// 使用DataProvider读取Excel中数据为DataProvider自身所需数据格式,
@DataProvider(name = "datatest")
public Object[][] PCData() throws IOException, BiffException {
ExcelC = A.readExcel();
// Object[][],第一个[]为Excel列数,也就是case运行的次数,第二个[]中为所存运行列中的数据
Object[][] DATA = new Object[ExcelC.size()][];
for (int i = 0; i<ExcelC.size(); i++) {
DATA[i] = (Object[]) ExcelC.get(i);
}
return DATA;
}
大体流程:获取Excel数据——>转换为Object[][]类型数据——>Test注记执行具体用例
3、生成测试报告
下载所需lib包——>导入项目——>修改TestNG.xml文件
下载velocity与reporting两个lib包
导入项目
修改TestNG.xml文件,增加下面脚本
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
4、运行xml文件,执行测试用例
<?xml version="1.0" encoding="UTF-8"?>
<suite name="TestNG Suite">
<test name="CobotStudio_Report" preserve-order="true">
<classes>
<class name="CobotSys_SFlow">
<methods>
<include name="Begining_frame" />
</methods>
</class>
<class name="CobotSys_Case">
<methods>
<include name="Begining_frame" />
<include name="Begining_camer" />
</methods>
</class>
</classes>
</test>
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners>
</suite>
5、查看测试报告
路径:CobotSys/test-output/html/index.html