歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android自動化測試之用robotium實現微博綁定

利用robotium實現微博的自動綁定

Android應用進行微博綁定主要有兩種方式,一種客戶端實現個webView,請求微博默認的授權頁,另一種則是直接調用微博客戶端,這裡實現的為前一種,即進和微博默認的授權頁,輸入用戶名密碼,然後登錄。

主要過程:點擊微博綁定按鈕“立即綁定”,客戶端進入授權頁,輸入用戶名及密碼,點擊“登錄”,微博綁定後按鈕狀態變為“解除綁定”,點擊可解除綁定。

主要問題:客戶端顯示的微博授權頁查看不到源碼,無法知道其網頁元素。

解決:使用SQLite編輯器查看客戶端應用的本地數據庫,一般webview的緩存數據存在於webviewCache.db數據庫下cache表中,導出其網址,在浏覽器中打開即可查看其源碼。

 public void test01_Sina() throws Exception {
  //進入微博綁定模塊
  View textView=solo.getCurrentActivity().findViewById(R.id.?);
  solo.clickOnView(textView);
  solo.sleep(1000);
  //獲得當前按鈕的顯示狀態,未綁定時顯示“立即綁定”,綁定後顯示“解除綁定”
  TextView sinaTV=(TextView)solo.getCurrentActivity().findViewById(R.id.?);
  String bindingSina=sinaTV.getText().toString();
  String bindingNowSN=sinaTV.getResources().getString(R.string.?);
  String unBindingSN=sinaTV.getResources().getString(R.string.?);
  //判斷若還未綁定,則點擊“立即綁定”
  if (bindingSina.equalsIgnoreCase(bindingNowSN)){
   solo.clickOnView(sinaTV);
   solo.sleep(25000);
   solo.assertCurrentActivity("Expected ?Activity", "?Activity");
   //在授權頁面輸入用戶名密碼
   solo.enterTextInWebElement(By.name("userId"), "your username");
   solo.enterTextInWebElement(By.name("passwd"), "your passwd");
   solo.clickOnWebElement(By.className("btnP"));
   solo.sleep(15000);
   //斷言,若此時textView文本已變成“解除綁定”,則用例執行成功
   assertEquals(true,sinaTV.getText().toString().equalsIgnoreCase(unBindingSN));
  }
  else{
   View backImage=solo.getCurrentActivity().findViewById(R.id.?);
   solo.clickOnView(backImage);
      solo.assertCurrentActivity("Expected ?Activity", "?Activity");
  }
 }

對於采用同樣默認授權頁方式的騰訊微博、人人網亦可以用類似方法實現自動綁定與解除綁定。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved