標籤:bs4 without 手機 idfa tip ps1 alsa hone elk
Sikuli是什嗎?
下面是來自於官網的介紹:Sikuli is a visual technology to automate and test graphical user interfaces (GUI) using images (screenshots). Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. Sikuli Script automates anything you see on the screen without internal API‘s support. You can programmatically control a web page, a Windows/Linux/Mac OS X desktop application, or even an iphone or android application running in a simulator or via VNC.
Sikuli是一種使用進行UI自動化測試的技術。Sikuli包括sikul指令碼,基於Jython的API以及sikuli IDE。Sikuli可以實現任何你可以在顯示器上看到ui對象的自動化,你可以通過編寫一些代碼來實現web 頁面,window/linux/Mac OS X案頭應用、甚至是iphone和android模擬器的自動化測試。
實現sikuli+eclipse在安卓上的應用需要的相關軟體和jar包:
1.sikulixsetup-1.1.0.jar/sikulixapi.jar(前者可以通過命令產生後者)
2.eclipse
3.小蘿貝控機大師
4.一台安卓手機+資料線
5.安卓app的apk
第一步,首先講一下,如何通過sikulixsetup-1.1.0.jar產生sikulixapi.jar包
sikulixsetup:
https://launchpad.net/sikuli/+download
- 將jar包匯入工程中;
- 在cmd中運行該jar包。java -jar sikulixsetup-1.1.0.jar,則會出現如,選擇相應選項後,啟動會下載sikulixapi.jar。不然會報錯:libs to export not found on above classpath: /sikulixlibs/mac/libs642.
- 選擇第二個
- 啟動後會有have fun的提示;
- 在檔案夾中找到下載的sikulixapi.jar包,匯入到工程中。
- 將apk放入項目的apps檔案夾中,apps是後建的
第二步,將手機關聯到電腦上
第三步,開啟小蘿貝控機大師,手機的介面可以在電腦上見得。
第四步,在eclipse中寫代碼,代碼如下:
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.sikuli.script.FindFailed;
import org.sikuli.script.Screen;
public class SikuliTest {
/*@Before
public void setUp() throws Exception{
System.out.println("App is launched!");
}*/
@Test
public void addContact() throws FindFailed, InterruptedException{
//獲得電腦案頭螢幕內容
Screen s = new Screen();
//圖片儲存路徑
String imgpath="D:\\eclipse-jee-mars-2-win32-x86_64\\Appium_demo\\pics\\";
//點擊最小化,最小化eclipse
s.click("D:\\eclipse-jee-mars-2-win32-x86_64\\Appium_demo\\pics\\min1.png");
//找到案頭上控機大師中的表徵圖
s.find(imgpath+"Contect.png");
s.click(imgpath+"Contect.png");
Thread.sleep(1000);
s.click(imgpath+"AddContact.png");
Thread.sleep(1000);
//輸入contactname為some
s.type(imgpath+"Contactname.png", "some");
s.click(imgpath+"Contactemail.png");
Thread.sleep(1000);
s.type(imgpath+"Contactemail.png", "some@163.com");
Thread.sleep(1000);
s.click(imgpath+"save.png");
System.out.println("App is done!");
}
@After
public void tearDown() throws Exception {
//此處可以添加關閉該程式的按鈕click,在此沒有寫出
}
}
第五步,右鍵,選擇run as--->junit test運行該程式
運用sikuli+eclipse對安卓app進行自動化測試完成了,很簡單吧,但是sikuli的對於圖片的辨識度比較低,所以要求點擊的位置一定要精確,寫的有些地方不是很詳細,之後我再補充。
sikuli+eclipse對於安卓app自動化測試的應用(第一次寫部落格,有些語言還不太專業,望海涵)