sikuli+eclipse对于安卓app自动化测试的应用(第一次写博客,有些语言还不太专业,望海涵)...
?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的對于圖片的辨識度比較低,所以要求點擊的位置一定要精確截圖,寫的有些地方不是很詳細,之后我再補充。
?
轉載于:https://www.cnblogs.com/daphnezhu/p/daphnezhu.html
總結
以上是生活随笔為你收集整理的sikuli+eclipse对于安卓app自动化测试的应用(第一次写博客,有些语言还不太专业,望海涵)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转 C#对多个集合和数组的操作(合并
- 下一篇: 面试题 HashMap和HashTabl