自動化測試中java多線程的使用實例

本人在學習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()方法,防止異常發生。

一塊兒來~FunTester數據庫

相關文章
相關標籤/搜索