(1)、启动安卓模拟器,打开需要查看ID的软件界面。此处以google搜索界面为例。然后双击打开hierarchyviewerbat,显示搜索界面的activity,即下图左侧被选中的项,表示搜索界面的完整包名。
(2)点击Load View Hierarchy按钮,展现该搜索界面的层级图。选中指定的控件,查看ID名称。
在属性显示区域可以看到各个控件所处的坐标位置,以及可以查看模拟器上任务栏的高度,这些信息可以用于坐标计算中。
第二步、通过EasyMonkeyDevice类和By类来调用控件ID。
(1)输入框的ID写法:easy_devicetype(Byid('id/name_text),'zhangsan')。
(2)复选框/单选/按钮的ID写法:easy_devicetouch(Byid('id/login_button'),MonkeyDeviceDOWN_AND_UP)。
(3)当两个ID名称相同时,可以使用层级进行定位。
easy_devicetouch(Byid('id/parent_button'),MonkeyDeviceDOWN_AND_UP,Byid('id/current_button'),MonkeyDeviceDOWN_AND_UP)。
第三步、运行文件模拟计算78=56,生成resultpng。monkeyrunner calculatorpy。
用ID进行参数差不多都是这个思路。但是对于列表、或者d出框则无法直接通过点击ID *** 作成功,需要计算ID的坐标。
软件测试工程师经过以上三个步骤,我们就能快速的掌握MonkeyRunner的使用方法,完成安卓软件测试的任务。
主要区别是,性质不同、目的不同、特点不同,具体如下:
一、性质不同
1、压力测试
压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下 *** 作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。压力测试可以被看作是负载测试的一种,即高负载下的负载测试,或者说压力测试采用负载测试技术。
2、负载测试
负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问题。负载测试更多地体现了一种方法或一种技术。
3、并发测试
指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试。
二、目的不同
1、压力测试
目的是在软件投入使用以前或软件负载达到极限以前,通过执行可重复的负载测试,了解系统可靠性、性能瓶颈等,以提高软件系统的可靠性、稳定性,减少系统的宕机时间和因此带来的损失。
2、负载测试
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。
3、并发测试
测试目的并非为了获得性能指标,而是为了发现并发引起的问题。
三、特点不同
1、压力测试
压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。
2、负载测试
负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。
3、并发测试
在具体的性能测试工作中,并发用户往往都是借助工具来模拟的,例如LoadRunner性能测试工具中叫做虚拟用户,因为实际情况中去实现同时多人并发的测试环境要求比较高而测试成本高、测试时间也是比较长。
参考资料来源:百度百科-压力测试
参考资料来源:百度百科-负载测试
参考资料来源:百度百科-并发测试
Monkey是Android中自带的用来进行压力测试的一个命令行工具。
用Monkey进行App压力测试的结果有三种。
1、正常。
2、Crash :程序崩溃。
3、ANR:程序无响应。
第一步:搭建环境:主要是安装和搭建java和sdk环境,说白了,对我们安卓开发来说,只要搭建好了Android开发环境,Monkey测试环境基本就是OK的了。
第二步:准备好要测试的项目,比如可以是一个apk安装包,也可以是已经安装到手机上的软件 。
第三步:连接上Android测试设备,可以是模拟器,当然也可以是手机,通过adb 命令对测试项目进行Monkey测试。
当然这一测试也是存在着优缺点的。
优点:功能强大, 主要用于压力和稳定性测试。缺点:本身不提供截屏功能,本身无法完成录制、回放的功能(不过都可以借用其他的开源工具来实现Monkey的截屏和录制等功能)。
性能测试分为两种维度:访问时间和并发量;负载测试是从并发量维度出发,不断增加并发量的情况下,系统的性能指标;
压力测试是从访问时间维度出发,在并发量一定的情况下,不断增加连续访问的时间,系统的性能指标;
负载测试的目标是测试在一定负载情况下,系统的性能;(这里不关注稳定性,也就是说不关注长时间运行,只是得到不同负载下相关性能指标即可;)实际中,我们常从较小的负载开始,逐渐增加模拟用户用户的数量,观察不同负载下,系统的响应时间,所耗资源,直到超时或关系资源耗尽,这就是所说的负载测试;
压力测试的目标是测试在一定负载的情况下,系统长时间运行时的稳定性。比如我们经常利用脚本或工具事先吃掉服务器的一部分CPU、内存或带宽等,创造出一定的负载环境并测试此时系统的事务处理能力,响应时间等等。压力测试尤其关注大业务量情况下长时间运行系统时,系统性能的变化(例如是否反应变慢,是否会内存泄漏导致系统逐渐崩溃);
打个比喻:
一位服务员,就相当于咱们的应用系统;
负载测试就是在单位时间内逐步加大这位服务器的工作量,看看此服务员在不同的工作量下完成工作的速度和质量,从而了解该服务员的工作能力;
压力测试就是给这位服务员外部压力,比如长时间不让他休息,不给开工资等,看看服务员会不会好好工作(能否及时响应请求),或者罢工之类的;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)