ThreadingTest(简称TT)第一期是一款Android白盒测试工具,使用离线检测的方式,在保护用户源代码的基础上,运用插装、第五代覆盖率等技术,为开发工程师与测试工程师提供一套高效可量化、可视化的交流工具。对比其它测试工具,TT在自动化测试时,会对应测试用例自动生成测试用例和代码之间的关系以及函数覆盖率,并且以TT自带的双向追溯图进行展示,在整个自动化测试进行过程中,TT还会以示波器界面可视化的监控整个自动化测试中每时每刻获取的测试数据。
基于其它测试工具测试时,TT还开放了API接口进行整合,使原本的自动化操作不用进行任何的改变,通过TT的API接口连接,TT示波器获取其它测试工具的测试数据,并生成会对应测试用例自动生成测试用例和代码之间的关系以及函数覆盖率。目前开放的Java语言的API,直接使用Java语言作为脚本预言的单元测试工具,自动化测试工具都可以通过该接口与TT进行整合。这样就可以实现在运行测试用例的同时,在TT中记录用例所对应的代码执行逻辑信息。
演示:测试场景说明:
当使用其它测试工具进行自动化测试时,如果在测试过程中出现无法干预或正在进行的自动化测试过程时,需要对测试过程进行测试用例的区分,例如登录和退出,在运行一次自动化测试时,同时执行了这两个测试用例,就可以在程序中,添加这两个测试用例的开始和结束点,从而达到区分两个测试用例的目的。这样就可以通过TT来实现测试用例与源代码的关系的自动建立,例如本例子中将建立登陆操作对应的代码以及退出动作所对应的代码。
测试步骤:
以登录退出为例,若存在以下代码结构:
…
classHomePage { public void login(){ … // 登录的相关操作 }
public void logout(){ … // 退出的相关操作 } } |
1、将JavaParser-Android.jar包引入到工程中;
2、import com.zoa.writeToMQ.UnitTest;
3、添加开始结束标识。
在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(); } } |
4、使用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接收到后,会将收到的数据存储到默认勾选的测试用例中,从而不会与之前的测试用例混合。
例如在进行一个单元测试时,每一个单元测试对应一个测试用例,从而生成多个测试用例,过程如下:
1、打开TT实时监控示波器界面,勾选一个测试用例。
2、点击开始,然后运行测试。
运行时,数据波形图显示接收到的被测程序发送的数据。
3、测试结束后,点击停止,刷新测试用例树,即可出现划分的测试用例。
1、单元测试开始标记
com.zoa.writeToMQ.UnitTest.UnitTest(String unitName)
publicUnitTest(String unitName)
当调用这个构造函数时,即标志着一个单元测试的开始。创建一个新的单元测试的测试用例。
此函数会发送一个unitName到TT,由TT根据名称创建一个测试用例和测试类型。通信过程为一个阻塞过程,只有当通信结束或发生严重错,函数才会返回。
进行单元测试时,必须在TT端选中一个测试用例,生成的单元测试用例组会首先生成一个与选中的测试用例同名的测试类型,然后根据unitName生成的测试用例和测试类型都生成到该测试类型下。
参数:
unitName–测试用例名称,名称以“/”进行分割,最后一部分为测试用例名,前面部分为测试类型路径,如“ThreadingTest/Android/Unittest”其生成的测试用例结构为:
— ThreadingTest 测试类型
|— Android 测试类型
|—Unittest测试用例
2、单元测试结束标记
voidcom.zoa.writeToMQ.UnitTest.close() throws IOException
public void close() throws IOException
结束单元测试,一个单元测试只能调用一次该函数。
参数:
返回值:
相关推荐
Android测试工具ThreadingTest测试CSDN开源版手机游戏--捕鱼达人实例
Android应用测试工具ThreadingTest查错实例分析.pdf
android常用的API接口调用
一个android HTTP接口测试小软件,可以GET和POST,参数可以动态添加删除,结果自动格式化json,里面也有GET图片的代码,但功能还没加上去。
比亚迪车应用开放平台开放接口API说明书
Android 平台支持使用即插即用的 USB 摄像头(即网络摄像头),但前提是这些摄像头采用标准的 Android Camera2 API 和摄像头 HIDL 接口。网络摄像头通常支持 USB 视频类 (UVC) 驱动程序,并且在 Linux 上,系统采用...
大众点评api接口Demo 本包主的demo含有demo asp.net 实例 js实例 java实例 php实例 android实例
ArcGis-10.1 读取 天地图 Android API 接口工具 20130425
flutter 学习案例,接口使用玩 Android 开放的 api,作为新手入门训练代码案例,耗时大概 4 个月【业余时间】,已经完成了基本的功能。努力打造一个体验好的 flutter 版本的玩 android 客户端!
使用android studio调用AP接口判断登录注册是否成功
Android 请求 WebAPI的案例,博客有些地方解释的不够清楚,所以上传了这个案例。方便学习。
an android demo to use openai's api 调用openai提供的接口,实现与ChatGPT对话 功能: 支持至Gpt-3.5模型(因为本人买不起plus) ✓ 无需代理即可与ChatGPT对话(可以使用自己的服务器中转) ✓ 支持带记忆的...
android API 接口离线说明文档.chm格式 带索引版 便于查询
Android官方API文档完整中文版是一款官方推出的全中文完整API,Android API是一套可供调用的系统接口,在需要使用的时候必备一套Android官方中文API文档。 Android API中文文档基本简介 API(Application ...
前言:这两天在整WebApi的服务,由于调用方是Android客户端,Android开发人员也不懂C#语法,API里面的接口也不能直接给他们看,没办法,只有整个详细一点的文档呗。由于接口个数有点多,每个接口都要详细说明接口...
android hook api,Deceptive signature
Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android Android API 中文文档 中文文档Android API ...
androidandroid api中文版android api中文版android api中文版android api中文版android api中文版android api中文版android api中文版
本文主要包括百度个人云存储(PCS) REST API:文件API列表、文件API错误码、结构化数据API说明、结构化...如有不明确或不足之处,请参考百度PCS API接口规范文档(现价段还没出)或者参考百度开发者中心(测试版)。
Monkeyrunner是android SDK中自带的自动化测试工具。该文档为monkeyrunner API的介绍文档