本人在學習android UiAutomator和selenium2java的時候,常常與遇到一些跟數據庫相關的問題,好比我提交了一個訂單,我想從數據庫中查詢這個訂單的信息是否跟預期一致,或者我已經購買過一個課程,我須要從數據庫中刪除這條記錄,方便我再去購買。若是對於一條用例來講執行一下sql語句就行了,可是若是對於執行不少用例的話,就不符合自動化的初衷了。因此本人在學習了java多線程以後,進行了一些實踐。分享出來,供你們參考。java
這個是我寫的ThreadTest類的代碼。很簡單,暫時只實現了一個key控制一個功能,可是思路差很少,再改改就能實現多功能,針對每一個須要操做數據庫的用例都寫一個key控制的if-else循環。android
public class ThreadTest extends Thread{ boolean key = true; boolean key1 = false; public void run() { while(key){ if (key1) { try { MySql.UpdateLectureById(123456); key = false; } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } } } public void setKey1(boolean key) { this.key1=key; } public void setKey(boolean key) { this.key=key; }
下面是我在用例中添加的一些setkey方法,selenium2java裏面能夠直接用,android UiAutomator使用起來稍微麻煩一些。git
//學習角發帖 public void testLearnCornerAddQuestion() throws UiObjectNotFoundException, InterruptedException, IOException { begin(); login(); waitForTextAndClick("聊天"); waitForTextAndClick("學習角"); postNewCard();//發帖 ThreadTest one = new ThreadTest(); one.setKey1(false); over(); }
下面是結束進程的方法,selenium2java使用也比較簡單,android UiAutomator我使用UiAutomatorHelper調試來獲取報告的,因此添在調試代碼後面了。sql
public static void main(String[] args){ new ThreadTest().start(); new UiAutomatorHelper("Demo", "student.Test", "testTest", "1"); new ThreadTest().setKey(false); }
若是具體使用的時候,還需根據狀況加入join()方法,防止異常發生。