日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
AndroidUI測(cè)試框架zinc30

zinc30是一個(gè)強(qiáng)大的Android UI自動(dòng)化測(cè)試框架,支持建立健壯、可維護(hù)的黑盒測(cè)試用例。RD或者QA能夠基于場(chǎng)景設(shè)計(jì)功能級(jí)和系統(tǒng)級(jí)測(cè)試。Zinc30符合Webdriver的 API規(guī)范,以更好地面向?qū)ο缶幊痰姆绞絹?lái)操作Android控件,同時(shí)全面支持Web UI測(cè)試中流行的PageFactory模式。

在黃埔等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營(yíng)銷,成都外貿(mào)網(wǎng)站制作,黃埔網(wǎng)站建設(shè)費(fèi)用合理。

項(xiàng)目地址:https://code.google.com/p/zinc30/

GettingStart

使 用Zinc30需要將zinc.jar包放入Android Test Project中并加入到build path之中,同時(shí)需要在AndroidManifest.xml的manifest元素下加入:

對(duì)于使用Zinc30的示例項(xiàng)目請(qǐng)?jiān)赿ownloads區(qū)下載 zinc30-sample.zip包,里面包含兩個(gè)項(xiàng)目,zinc30-sample是被測(cè)項(xiàng)目,采用mvp模式書寫;zinc30-sample- test是測(cè)試項(xiàng)目,采用PageFactory模式來(lái)書寫測(cè)試用例。兩個(gè)項(xiàng)目導(dǎo)入到eclipse即可直接運(yùn)行。

示例演示

這里以測(cè)試登陸功能為例,假如有兩個(gè)Activity,其中一個(gè)為L(zhǎng)oginView,主要是登陸頁(yè)面,另一個(gè)為MainView,主要是登陸成功后跳轉(zhuǎn)的頁(yè)面。這里也采用PageFactory模式來(lái)書寫,先寫ActivityPage:

 
 
 
  1. public class LoginViewPage extends BaseActivityPage { 
  2.  
  3.         public LoginViewPage(Zinc zinc) { 
  4.                 super(zinc); 
  5.         } 
  6.  
  7.         @FindBy(id = R.id.username) 
  8.         private AndroidElement usernameEdit; 
  9.  
  10.         @FindBy(type = AndroidElementType.EditText, index = 1) 
  11.         private AndroidElement passwordEdit; 
  12.  
  13.         @FindBy(type = AndroidElementType.Button, text = "登陸") 
  14.         private AndroidElement loginButton; 
  15.  
  16.         public MainViewPage login(String username, String password) { 
  17.                 usernameEdit.clear(); 
  18.                 usernameEdit.sendKeys(username); 
  19.  
  20.                 passwordEdit.clear(); 
  21.                 passwordEdit.sendKeys(password); 
  22.  
  23.                 loginButton.click(); 
  24.                 return new MainViewPage(zinc); 
  25.         } 
  26.  

可以看到,這個(gè)Page頁(yè)面主要包括測(cè)試過(guò)程中需要操作的元素以及動(dòng)作,其中元素查找有3個(gè)方法:

1、根據(jù)id來(lái)查找,即自動(dòng)生成的R文件中的id值;

2、根據(jù)文本來(lái)查找,需要帶上元素類型。比如@FindBy(type = AndroidElementType.Button, text = "登陸")為查找寫有登陸文字的Button控件。如果元素類型不確定可以使用Unkown類型;

3. 根據(jù)索引來(lái)查找,需要帶上元素類型。比如@FindBy(type = AndroidElementType.EditText, index = 1)為查找第二個(gè)EditText控件。這里index以0標(biāo)識(shí)***個(gè)元素。

接下來(lái)我們來(lái)看Test Case如何來(lái)書寫,其實(shí)Test case主要組合已有的ActivityPage類:

 
 
 
  1. public class LoginViewTest extends ZincTestCase  { 
  2.  
  3.         public LoginViewTest() { 
  4.                 super("com.baidu.zinc30.sample", LoginView.class); 
  5.         } 
  6.  
  7.         public void testLoginSuccess() { 
  8.                 LoginViewPage loginViewPage = new LoginViewPage(zinc); 
  9.                 MainViewPage mainViewPage = loginViewPage.login("zinc", "zinc"); 
  10.  
  11.                 Assert.assertTrue("should login success", 
  12.                                 mainViewPage.isActivityPresent(MainView.class)); 
  13.         } 

我們寫測(cè)試用例的時(shí)候需要繼承ZincTestCase,它主要完成zinc對(duì)象的初始化。雖然在Test Case這層可以使用zinc對(duì)象,但我們鼓勵(lì)將操作封裝在ActivityPage層。

總結(jié)

Zinc30是全面支持PageFactory模式的(可以參考:http://chon.techliminal.com/page_object/#/intro),因?yàn)樗?方面的優(yōu)點(diǎn):

1)減少重復(fù)代碼,將頁(yè)面狀態(tài)的改變和遷移封裝在頁(yè)面對(duì)象之中;

2)UI的變動(dòng)只會(huì)影響到相應(yīng)頁(yè)面對(duì)象而不會(huì)影響到上層的test case;

3)能夠在不同的test case中重用頁(yè)面對(duì)象。

對(duì)于某些操作不在WebDriver的API中,比如滑動(dòng)屏幕、點(diǎn)擊Listview中的某一行或者返回上一頁(yè)等操作,我們?cè)贏ctivityPage層直接zinc對(duì)象,它完全兼容Robotium的所有動(dòng)作。


網(wǎng)頁(yè)題目:AndroidUI測(cè)試框架zinc30
轉(zhuǎn)載來(lái)源:http://www.5511xx.com/article/djohhoi.html