如何编写脚本自动运行android studio测试用例
测试用例是什么,测试用例其实就是一段普通的程序代码,通常是带有期望的运行结果的,测试者可以根据最终的运行结果来判断程序是否能正常工作。
单元测试是什么,单元测试是指对软件中最小的功能模块进行测试,如果软件的没一个单元都能通过测试,说明代码的健壮性已经非常好了。
在Eclipse下也没编写过测试用例,总觉得多此一举。
然后看了Android Studio新建的工程目录下总会自动生成test文件夹,看着很不爽,所以需要了解它是怎么工作的。
在工程目录与main同级的test文件夹下的包下,建立一个Java文件叫HaolvTest继承自AndroidTestCase,在里面写了一个方法如下:public class HaolvTest extends AndroidTestCase{ @Override protected void setUp() throws Exception { super.setUp(); } public void testAddAct(){ assertEquals(0, AppManager.getInstance().actSize()); SplashActivity splashActivity = new SplashActivity(); AppManager.getInstance().addActivity(splashActivity); assertEquals(1, AppManager.getInstance().actSize()); } @Override protected void tearDown() throws Exception { super.tearDown(); } }1234567891011121314151617181912345678910111213141516171819 然后右键这个文件Run,等了一会儿,看到控制台输出错误日志如下:java.lang.RuntimeException: Method setUp in android.test.AndroidTestCase not mocked. See http://g.co/androidstudio/not-mocked for details. at android.test.AndroidTestCase.setUp(AndroidTestCase.java) at com.example.admin.myapplication.HaolvTest.setUp(HaolvTest.java:18) at junit.framework.TestCase.runBare(TestCase.java:139) ......Process finished with exit code -1123456789123456789 然后简单搜索了一下,也没发现什么有价值的答案,后来直接看了原来默认的ExampleUnitTest的编写方式,发现它并没有继承自AndroidTestCase,而是直接在方法上加了一个Test注解,然后我也把我的测试用例代码改成这样,果然可以测试通过,然后添加了一个已知的错误来测试,如下:@Test public void testAddAct(){ assertEquals(0, AppManager.getInstance().actSize()); SplashActivity splashActivity = new SplashActivity(); AppManager.getInstance().addActivity(splashActivity); assertEquals(1, AppManager.getInstance().actSize()); AppManager.getInstance().addActivity(splashActivity); assertEquals(1, AppManager.getInstance().actSize()); }123456789123456789 这个时候执行的结果是错误的,如下:Expected :1 Actual :2 at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotEquals(Assert.java:834) at org.junit.Assert.assertEquals(Assert.java:645) at org.junit.Assert.assertEquals(Assert.java:631) at com.example.admin.myapplication.HaolvTest.testAddAct(HaolvTest.java:25) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) .....1234567891011121312345678910111213 可以看到期望是1,实际值是2,所以可以测试出addActivity这个方法还需要优化。
总结:在AS环境下,写测试用例更方便了,啥都不用准备了,直接在ExampleUnitTest写个方法@Test就行,方法内容主要就是通过assertEquals去判断等,后面再细细研究,这里先开个头,做个准备工作。
。
(以上部分文字和代码参考《第一行代码》13.5小节) 在新建一个Android Project后,会发现在在src目录下有三个子目录,分别是androidTest、main、test目录,搜索了一下,得知androidTest目录是Android Instrumentation Tests的文件夹(Instrumentation :模拟、使用仪器),test目录是Unit Tests的文件夹。
看来要进行真正的Android测试,应该是在androidTest目录下编写测试用例。
如何对一个Android软件进行测试
展开全部 主要测试内容包括: 1、功能正确性测试; 根据这个安桌软件的需求,看它到底支持那些功能,对每个功能,编写测试用例,验证这个功能是否正确;例如:有注册,登陆,编辑消息,发送消息,删除消息,察看消息等功能,那么你就要测试这每个功能是否正确实现了。
2、界面易用性测试; 主要考虑(1)易理解性;(2)易学习性;(3)易操作性;是否达到要求。
3、兼容性测试; 不同安卓版本的兼容性;不同安卓设备的兼容性,例如:不同厂家的手机,PAD等;看该软件在不同的软件和硬件下显示是否正常,功能是否正确; 4、安全性测试; 用户信息是否不被泄漏等; 5、不同网络状态下的测试; wifi和2g,3g不同的网络速度下的功能是否正确;没有网络连接的情况下会怎么样,等等。
...
如何去做安卓端的接口测试,需要注意哪些方面
展开全部 对于接口测试来说,项目测试用例的重复运行首先是表现在单个测试用例的独立性方面的,也就是说,每一个测试用例的运行除了依赖被测对象和对应的数据库环境外,是不依赖于其他任何测试用例的,并且这个测试用例执行完毕后,对系统来说,也是没有任何痕迹的,这样就保证了每个测试用例运行时,都在一个干净的环境中运行。
要实现测试用例的独立性,就必须对被测系统的设计有详细的了解,这样,不会出现测试用例执行后遗漏数据,环境未改变,另外,还需要对测试用例进行详细的设计。
另外,要保证测试用例的重复使用,还需要做到测试用例的及时更新,在这个方面,是做接口测试的人会维护对应的系统的接口测试用例,要保证,代码每次更新,测试用例都必须全部执行通过。
...
App的测试,和传统软件测试有哪些区别?应该增加哪些方面的测试用...
随手机对人们生活中的影响越来越大,App测试工作逐渐被众人所知。
从一开始的众包到现在的自动化探索,手机测试上的技术发展也是日新月异。
App测试相比以往传统的软甲测试相关要复杂的多且困难的多。
基于工作经验,我将如何做好app的测试归结为如下内容。
(1) 非功能测试app测试的一个重要方面是app的非功能需求。
移动app在推出市场或进行进一步开发前,测试人员有一定的职责做该类需求的跟踪工作。
早期开发阶段要进行的第一个测试应该是实用性测试。
通常是由alpha用户或同事进行的。
走进一家咖啡馆或餐厅,问问里面的人他们的app使用情况。
让他们看看现阶段开发的第一个版本并收集反馈,看看用户是否能很好地使用新功能,以便得出第一印象。
(2) 功能测试每项开发的新功能都需要进行测试。
app测试中功能测试是一个重要方面。
测试人员应该要进行手动测试和后期的自动化测试维护。
刚开始测试时,测试员必须把app当做"黑盒"一样进行手动测试,看看提供的功能是否正确并如设计的一样正常运作。
除了经典软件测试,像点击按钮、提交订单看看会发生什么,测试员还必须执行更多功能的app测试。
除了整个手动测试过程,测试自动化对移动app也很重要。
每个代码变化或新功能都可能影响现存功能及它们的状态。
通常手动回归测试时间不够,所以测试员不得不找一个工具去进行自动化回归测试。
现在市面上有很多自动化测试工具,有商业的也有开源的,面向各个不同平台,如Android,iPhone,WindowsPhone7,BlackBerry以及移动Webapp。
根据开发策略和结构,品质管理测试专家需找出最适合他们环境的自动化工具。
(3) 客户端性能测试一个App做的好不好,不仅仅只反应在功能上。
被测的app在中低端机上的性能表现也很重要。
比如:一个很好玩的游戏或应用,只能在高端机上流畅运行,在中低端机上卡的不行,也不会取得好的口碑。
关于App的性能测试,我们比较关注的参数有:CPU,内存,耗电量,流量,FPS。
同时也需关注一下App的安装耗时和启动耗时。
目前大家可能比较困惑的一个问题,多高的CPU,内存,耗电量,流量,FPS才算是符合发布的值呢?这里可以告诉大家,可以参考精品游戏的一些数值,将自己研发的app与业内精品的app数据做对比。
(4) 适配兼容测试App在经过功能测试后,也需对其进行适配兼容测试需要检查的项主要有以下几点:(a) 在不同平牌的机型上的安装、拉起、点击和卸载是否正常;(b) 在不同的操作系统上的安装、拉起、点击和卸载是否正常;我们在实际测试中,常常会遇到下列问题:(a) 在某个平牌某个系统上,app安装不上;(b) 在某个平牌某个系统上,app无法拉起;(c) 在某个平牌某个系统上,app拉起后无响应或拉起后黑屏、花屏;(d) 在某个平牌某个系统上,app无法顺利卸载;(WeTest腾讯质量开放平台)这个产品可以实现多款热门机型的适配兼容测试。
(5) 弱网络测试App在使用的过程中,难免会遇到弱网络环境,例如在公车上、在地铁里。
在这种情况下,常常会出现网络抖动、上行或下行超时,导致应用中出现丢包。
作为一个测试人员,我们要对app在上线前做一定场景的弱网络环境模型,并查看app在弱网络环境下是否存在某些未知的问题。
下面是我们常用的弱网络环境场景:(a) 3G弱网络信号场景模拟;(b) 市区低速移动场景模拟;(c) 郊区高速移动场景模拟;(d) 请求回应超时_上行超时场景模拟;(e) 请求回应超时_下行超时场景模拟;(f) 网络抖动场景模拟;(6) 耗电量测试App在手机上的表现,除了功能外,app是否耗电,也是测试过程中重点要关注的一项。
手机设备在满电的时候,这个App能玩多久;App每小时的耗电是多少;App在某个场景挂机10分钟耗电量是多少;这些都是我们平时在耗电量测试中比较关注的点。
(7) 协议测试模拟客户端直接发送协议包给服务器,看看服务器是否有一定的校验,认不认客户端发过来的数据。
协议测试,主要是为了处理用户发送恶意协议到服务器,骗过服务器的校验。
(8) 安全测试App在上线前,都需要做详细的安全测试。
安全测试主要为了检测应用是否容易被外界破解;是否存在被恶意代码注入的风险;上线后外挂的风险高不高等。
(9) 服务器性能测试服务器性能测试,主要包含单机容量测试和24小时稳定性测试。
单机容量测试,可以检测到单机服务器在90%的响应时间和成功率都达标的前提下,能够承载多少用户量。
使用特定游戏模型压测24小时,服务无重启,内存无泄漏,并且各事务成功率达标。
这个可以在WeTest入口预约。
(10) 服务器容灾测试服务器容灾测试,主要指某个服务进程奔溃掉后,是否具有自行恢复能力。
比如游戏逻辑进程消失后,是否会自动拉起;memcached崩溃时,是否会重新启动,是否会对所有玩家有影响。
这些都是app测试过程中需要考虑的因素。
(11) 中断测试针对智能终端应用的服务等级划分方式及实时特性所提出的测试方法,如:App在前台和后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。
测试电话,短信,彩信,微博或其他通知进来...
做Android 手机软件测试需要掌握哪些工具
基本上带Android字样的测试,都是属于软件测试:区别:Android应用测试:这是测试安卓应用程序的,就是属于Android应用开发类的公司专门对他们开发的应用来进行测试。
如:某款游戏,或者某个聊天软件,或者系统软件。
android手机测试:是手机软件测试,比如说某款手机正在开发中,手机软件测试人员就要对该款手机的软件进行一个系统的测试,包括OS,内置应用,易用性等等。
手机APP的逻辑性的测试用例主要考虑哪些方面
展开全部 安装与卸载:●应用是否可以在IOS不同系统版本或android不同系统版本上安装(有的系统版本过低,应用不能适配)●软件安装后是否可以正常运行,安装后的文件夹及文件是否可以写到指定的目录里。
●安装过程中是否可以取消●安装空间不足时是否有相应提示●如果应用需要通过网络验证之类的安装,需要测试一下断网情况下是否有相应提示●是否可以删除应用(可通过桌面删除,也可以通过软件卸载安装。
曾发现在IOS手相上有个应用安装时未完全安装,终止安装后,未完成安装的应用图标一直显示在手机上,并且无法成功删除)●测试卸载后文件是否全部删除所有的安装文件夹●卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以正确卸载●卸载是否支持取消功能,单击取消后软件卸载情况是否正常运行●APP安装完成后,是否可以正常打开软件●APP运行时,是否有加载图示●APP的速度是可以让人接受,切换是否流畅●用户登录状态太久,sessionId会过期,会出现“虽然是登录状态,系统会提示用户没有登录。
登录●登录用户名和密码错误时,界面有提示信息●用户主动退出登录后,下次启动APP时,应该进入登录界面●对于支持自动登录的APP,数据交换时 ,是否能自动登录成功且数据库操作无误●密码更改后,登录时是否做到了有效数据的校验●对于未登录时一些页面的操作,是否做了控制●切换账号登录,检验登录的信息是否做到及时更新●对于多个端都进行操作时,确保数据库操作无误,且每个端可以及时看到数据的更新●对于一些软件,支持一个账号只允许登录一台机器,这时,需要检查账号登录多个手机时,是否将原用户剔除,且能够给出提示信息● APP切换到后台时,再次切换到前台的测试,如登录时,有电话打进来●对于IOS与android不同设备登录同一个账号时,对个人信息等数据进行操作后,确保数据数库操作无误,且IOS与android设备看到的数据都是最新的。
离线:离线是应用程序在本地的客户端会缓存一部分数据以功程序下次调用●对于一些程序,需要在登录进来后,这时没有网络的情况下可以浏览本地数据●对于无网络时,刷新获取新数据时,不能获取数据且能给出友好提示●切换到后台,再次切换到前台时,可以正常查看●离线后又连上网,这时对数据有更新时,需要从服务器端获取新数据来更新客户端数据,且要更新本地缓存信息●对于一些界面的数据不提供离线查看,需要给出相应提示且界面更新后无任何数据●确认在无网情况下可以浏览本地数据●确认退出APP再开启APP时能正常浏览●确认切换到后台再切回APP应用时可以正常浏览●锁屏后再解锁回到应用前台可以正常浏览●服务端的数据有更新时有离线的提示更多软件测试学习可以关注微信公众号:软件测试大师
怎样使用Appium进行Android自动化测试
1、Robotium——安卓测试工具Robotium是安卓系统最常用的自动化测试工具,并且是一款免费的安卓UI测试工具。
它适合于各种不同的安卓版本及其下行版本。
软件开发者经常把它称作安卓。
Robotium创建的测试使用Java写的。
事实上,Robotium是一个个体测试数据库。
但是Robotium需要花费很长时间努力去创建测试,就像为了自动化程序创建的源代码。
它不适合互动的软件系统,不能锁住和解锁智能手机。
Robotium没有记录和播放功能,它不支持截屏。
2、MonkeyRunner——安卓App测试工具MonkeyRunner是最流行的有自动化功能的安卓软件测试工具。
MonkeyRunner比起Robotium要低端一些。
它并不处理源代码。
测试创建是用Python写的,其中可能使用记录工具,为了创建测试。
MonkeyRunner可以在连接状态的PC或者模拟器上运行测试。
它有一个应用程序接口可以控制智能手机或者模拟器。
但手机APP测试工具的最大缺陷是每个设备都要编写脚本。
另一个缺陷就是,每次测试程序发生改变时都要调整。
3、Ranorex——安卓App测试工具Ranorex是一个不错的自动化测试工具,不仅最新版本,Android 2.2.以上版本都是可以的。
Ranorex的好处在于它有详细的截屏报告。
他可以通过WiFi上网连接智能手机或者平板电脑。
通过这个 Android 工具,自动化的测试工程师可以详细描述数据驱动测试,但不包括 XML 数据格式。
Ranorex可以很轻松地创建测试,自动化测试工程师只需点击鼠标。
Ranorex允许附加的程序模块。
这个模块可以被用于开发更为复杂的测试场景中。
Ranorex是一个商业化的移动应用程序的工具;其许可价格是 1990欧元/年。
Ranorex搜索相当慢;它需要 30 秒的时间来执行操作。
其中一个必须为Ranorex文书的 APK 文件。
否则它不能通过这个工具进行自动化测试,它只能在APK 文件下工作。
4、Appium——安卓自动化测试工具Appium是为iOS和安卓系统创建的自动化测试框架,是一个免费工具。
它支持 2.3 及更高版本的 Android 系统。
Appium利用WebDriver界面运行测试。
它支持许多编程语言,如 Java、 C#、Ruby和其他的WebDriver数据库。
它可以在移动设备上控制 Safari 和Chrome。
但是,一些自动化的测试工程师抱怨它提供的报告不足。
它的缺点也减少了对于XPath在移动设备上的支持。
5、UI Automator——安卓自动化测试谷歌最近推出了这一工具。
它支持从4.1开始的安卓版本。
我们应该选择另一个更早期的安卓应用程序进行自动化测试。
UI Automator能够与各类安卓系统兼容,包括系统的应用程序。
这使得UI Automator可以锁定和解锁智能手机或平板电脑。
通过该工具创建的脚本可以在许多不同的安卓平台上执行。
它允许复制用户的操作复杂的序列。
UI Automator也可以利用外部按钮的装置调节,打开和关闭设备的按钮。
UI Automator可以与测试框架TestNG集成。
在这种情况下,用户界面自动可以生成内容丰富和详细的报告,类似于由Ranorex生成的报告。
此工具搜索速度还非常快。
在许多安卓平台上测试后,软件测试专家认为UI Automator是质量最好的移动应用程序。
它是安卓做好的应用程序之一,它由谷歌推出。
通常大约 80%的新软件的 bug 都会重现支持的平台。
其余 20%出现在其他平台上。
这意味着,在大多数情况下,事先测试软件产品比盲目使用更好。
目前, Android 4.1 版本安装了约 66%操作系统的设备。
这就是为什么许多自动化的测试工程师经常决定UI Automator是最合适的解决方案。
请问自动化测试android和iphone手机软件的工具是什么?功能测试和...
功能测试是最重要的测试内容,主要测试每个开发模块所要实现的功能是否能正常使用!性能测试是说,APP正常使用的基础上,使用起来的直观感受是否令人满意,比如启动快慢、流量耗用多少之类。
安卓的自动化测试方面,百度做的还不错,兼容测试、性能测试、功能测试都涵盖了的。
最近推出了MTC录制回放客户端,用着感觉不错哦~是基于Eclipse开发环境的,能够按照开发者的操作自动生成基于控件的测试代码,都不用再自己写测试用例了,推荐你试试吧!!
求助,如何设计export file这个测试用例
展开全部 alewaiwai【教程】合并APK与ODEX文件多数Android系统Rom 中的软件由一个APK文件和一个odex文件组成(文件名相同),我们发现,直接提取APK文件出来是无法安装的,其实就是由于缺少odex文件造成的,这也是厂商采取的防**措施。
如何从Android系统ROM中提取想要的软件,并制作成可以安装的APK文件呢?ODEX文件:Odex文件是应用程序的可执行文件,类似于Windows操作系统下的exe文件APK文件:APK是Android系统的安装包,其主文件是classes.dex那么我们只要把odex文件转换成classes.dex,并且和apk文件重新打包在一起,就可以安装了。
转载请注明出处51数据库 » android软件测试用例
高强武艺个子大