背景:因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