ThreadingTest(简称TT)第一期是一款Android白盒测试工具,使用离线检测的方式,在保护用户源代码的基础上,运用插装、第五代覆盖率等技术,为开发工程师与测试工程师提供一套高效可量化、可视化的交流工具。对比其它测试工具,TT在自动化测试时,会对应测试用例自动生成测试用例和代码之间的关系以及函数覆盖率,而且以TT自带的双向追溯图进行展现,在整个自动化测试进行过程当中,TT还会以示波器界面可视化的监控整个自动化测试中每时每刻获取的测试数据。网络
基于其它测试工具测试时,TT还开放了API接口进行整合,使本来的自动化操做不用进行任何的改变,经过TT的API接口链接,TT示波器获取其它测试工具的测试数据,并生成会对应测试用例自动生成测试用例和代码之间的关系以及函数覆盖率。目前开放的Java语言的API,直接使用Java语言做为脚本预言的单元测试工具,自动化测试工具均可以经过该接口与TT进行整合。这样就能够实如今运行测试用例的同时,在TT中记录用例所对应的代码执行逻辑信息。ide
演示:测试场景说明:函数
当使用其它测试工具进行自动化测试时,若是在测试过程当中出现没法干预或正在进行的自动化测试过程时,须要对测试过程进行测试用例的区分,例如登陆和退出,在运行一次自动化测试时,同时执行了这两个测试用例,就能够在程序中,添加这两个测试用例的开始和结束点,从而达到区分两个测试用例的目的。这样就能够经过TT来实现测试用例与源代码的关系的自动创建,例如本例子中将创建登录操做对应的代码以及退出动做所对应的代码。工具
测试步骤:性能
以登陆退出为例,若存在如下代码结构:单元测试
…测试
classHomePage {spa public void login(){orm … // 登陆的相关操做接口 }
public void logout(){ … // 退出的相关操做 } } |
一、将JavaParser-Android.jar包引入到工程中;
二、import com.zoa.writeToMQ.UnitTest;
三、添加开始结束标识。
在login函数的开始添加登陆测试用例开始的标记,在函数结束前添加登陆测试用例结束的标识;一样,在logout函数的开始和结束也能够添加相应的标识。添加后的代码为:
… import com.zoa.writeToMQ.UnitTest;
classHomePage { public void login(){ UnitTest testLogin = new UnitTest(“HomePage/login”); … // 登陆的相关操做 testLogin.close(); }
public void logout(){ UnitTest testLogout = new UnitTest(“HomePage/logout”); … // 退出的相关操做 testLogout.close(); } } |
四、使用TT对程序进行插桩并测试,详见:http://www.threadingtest.com/xwiki/bin/view/ZOA%7C4.演示/Android+程序测试配置
手动使用TT测试基本原理:
为了让读者理解TT的接口调用,咱们这里说明下在手动模式下TT是如何录制用例的代码执行逻辑与覆盖率信息的。
在TT中,区别测试用例是经过使用不一样的测试用例Id进行划分的。在测试的开始添加测试开始标识并在结束添加结束标识,其目的为,开始标识会经过一个网络链接或USB链接,经过一个字符串从TT获取一个测试用例Id,而后经过先前TT对源代码的插桩,被测程序内部会不断地向TT示波器发送数据,而且会在消息中使用从TT获取到的测试用例Id,从而作到区分测试用例。
当调用发送结束标识后,发送的消息将会使用默认的测试用例Id,TT接收到后,会将收到的数据存储到默认勾选的测试用例中,从而不会与以前的测试用例混合。
例如在进行一个单元测试时,每个单元测试对应一个测试用例,从而生成多个测试用例,过程以下:
一、打开TT实时监控示波器界面,勾选一个测试用例。
二、点击开始,而后运行测试。
运行时,数据波形图显示接收到的被测程序发送的数据。
三、测试结束后,点击中止,刷新测试用例树,便可出现划分的测试用例。
一、单元测试开始标记
com.zoa.writeToMQ.UnitTest.UnitTest(String unitName)
publicUnitTest(String unitName)
当调用这个构造函数时,即标志着一个单元测试的开始。建立一个新的单元测试的测试用例。
此函数会发送一个unitName到TT,由TT根据名称建立一个测试用例和测试类型。通讯过程为一个阻塞过程,只有当通讯结束或发生严重错,函数才会返回。
进行单元测试时,必须在TT端选中一个测试用例,生成的单元测试用例组会首先生成一个与选中的测试用例同名的测试类型,而后根据unitName生成的测试用例和测试类型都生成到该测试类型下。
参数:
unitName–测试用例名称,名称以“/”进行分割,最后一部分为测试用例名,前面部分为测试类型路径,如“ThreadingTest/Android/Unittest”其生成的测试用例结构为:
— ThreadingTest 测试类型
|— Android 测试类型
|—Unittest测试用例
二、单元测试结束标记
voidcom.zoa.writeToMQ.UnitTest.close() throws IOException
public void close() throws IOException
结束单元测试,一个单元测试只能调用一次该函数。
参数:
返回值:
ThreadingTest官网:www.threadingtest.com
对移动端白盒测试技术或者性能测试感兴趣,请加入群符号执行 339834199
ThreadingTest官网:www.threadingtest.com
对移动端白盒测试技术或者性能测试感兴趣,请加入群符号执行 339834199