本人在学习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()方法,防止异常发生。数据库