专栏首页FunTester自动化测试中java多线程的使用实例

自动化测试中java多线程的使用实例

本人在学习android UiAutomator和selenium2java的时候,经常与遇到一些跟数据库相关的问题,比如我提交了一个订单,我想从数据库中查询这个订单的信息是否跟预期一致,或者我已经购买过一个课程,我需要从数据库中删除这条记录,方便我再去购买。如果对于一条用例来说执行一下sql语句就好了,但是如果对于执行很多用例的话,就不符合自动化的初衷了。所以本人在学习了java多线程之后,进行了一些实践。分享出来,供大家参考。

这个是我写的ThreadTest类的代码。很简单,暂时只实现了一个key控制一个功能,但是思路差不多,再改改就能实现多功能,针对每个需要操作数据库的用例都写一个key控制的if-else循环。

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使用起来稍微麻烦一些。

  //学习角发帖
  public void testLearnCornerAddQuestion() throws UiObjectNotFoundException, InterruptedException, IOException {
    begin();
    login();
    waitForTextAndClick("聊天");
    waitForTextAndClick("学习角");
    postNewCard();//发帖
    ThreadTest one = new ThreadTest();
    one.setKey1(false);
    over();
    }

下面是结束进程的方法,selenium2java使用也比较简单,android UiAutomator我使用UiAutomatorHelper调试来获取报告的,所以添在调试代码后面了。

  public static void main(String[] args){
    new ThreadTest().start();
    new UiAutomatorHelper("Demo", "student.Test", "testTest", "1");
    new ThreadTest().setKey(false);
  }

如果具体使用的时候,还需根据情况加入join()方法,防止异常发生。

点击阅读原文,有兴趣的童鞋可以加QQ群交流

本文分享自微信公众号 - FunTester(NuclearTester),作者:八音弦

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Mac OS上使用UiAutomator快速调试类

    本人最近在Mac OS上使用UiAutomator快速调试类的时候发现跟Windows环境下使用有很大的区别,对于我这个Mac OS小白来说有很多坑要填,今天终...

    FunTester
  • 统计APP启动时间和进入首页时间的多线程类

    本人在做APP性能测试的时候,需要统计一下APP启动时间和进入首页的时间,之前采取的方案是图片做对比,后来采取了录屏,效果都不是很理想,在参考了网上关于手机lo...

    FunTester
  • Groovy中的闭包

    今天分享一下Groovy的闭包。基本上,我们可以将闭包视为代码,语句块,它们可以访问周围范围的所有变量或方法,并且可以将这些代码块分配给变量,并将它们传递到其他...

    FunTester
  • [ASP.NET Web API]如何Host定义在独立程序集中的Controller

    通过《ASP.NET Web API的Controller是如何被创建的?》的介绍我们知道默认ASP.NET Web API在Self Host寄宿模式下用于...

    蒋金楠
  • C++虚基类

    如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员。C++提供虚基类的方法,使得在继承...

    卡尔曼和玻尔兹曼谁曼
  • ASP.NET Core真实管道详解[2]:Server是如何完成针对请求的监听、接收与响应的【上】

    Server是ASP .NET Core管道的第一个节点,负责完整请求的监听和接收,最终对请求的响应同样也由它完成。Server是我们对所有实现了IServer...

    蒋金楠
  • 深入浅出 Java 8 Lambda 表达式

    摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等。

    九州暮云
  • 讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute

    转自:https://www.cnblogs.com/sheldon-lou/p/9495377.html

    莫问今朝
  • 讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute

    ASP.NET Core MVC 2.1 特意为构建 HTTP API 提供了一些小特性,今天主角就是 ApiControllerAttribute. (注:文...

    _淡定_
  • 猿学-讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute

    ASP.NET Core MVC 2.1 特意为构建 HTTP API 提供了一些小特性,今天主角就是 ApiControllerAttribute. (注:文...

    黑客联盟

扫码关注云+社区

领取腾讯云代金券