51Testing软件测试论坛

标题: 大家讨论一下,android平台自动化测试如何实施? [打印本页]

作者: DIOBRANDO    时间: 2010-6-5 18:47
标题: 大家讨论一下,android平台自动化测试如何实施?
目前公司打算在功能测试这块实施自动化,关于这块,谁有什么好的思路聊一下?
作者: carrie2046    时间: 2010-6-7 13:45
共同关注、目前android测试刚开始,希望高手们多发言
作者: chehvyin    时间: 2010-6-8 17:30
别沉
作者: Jackc    时间: 2010-6-8 17:49
我有个问题,android的真机能通过串口将屏幕映射到PC的模拟器上吗?
作者: Jackc    时间: 2010-6-8 17:56
标题: LS的问题是一个关键点
1、如果不能,那可以试试TestQuest、mShell这类的,不过只能测基本功能,个人感觉用于不用区别不大。

要么就自己写工具,可以参考:
http://www.51testing.com/?uid-97 ... space-itemid-215037

2、如果可以,又有经费的话,可以考虑QTP的SeeTest组件。

如果没经费,试试这种:
http://bbs.51testing.com/thread-139723-1-1.html
作者: kaza    时间: 2010-6-9 14:46
Robotium,利用android提供的unit test 框架实现针对activity的测试。在IDE环境中编写case 目前好像可以不需要源代码只要APK编写测试脚本了。
Autoandroid,基于android junit编写的测试框架 功能强大 可以完成application test

另外python已经有能运行在android环境的client 可以参考
https://www.ohloh.net/p/android-scripting

以上全部是开源框架

[ 本帖最后由 kaza 于 2010-6-9 14:49 编辑 ]
作者: kaza    时间: 2010-6-9 14:47
robotium 网址是 code.google.com/p/robotium

实例

public class EditorTest extends
                ActivityInstrumentationTestCase2<EditorActivity> {

  private Solo solo;

  public EditorTest() {
                super("com.test.editor",
                                EditorActivity.class);
  }

  public void setUp() throws Exception {
        solo = new Solo(getInstrumentation(), getActivity());
  }
  
  public void testPreferenceIsSaved() throws Exception {
  
                solo.sendKey(Solo.MENU);
                solo.clickOnText("More");
                solo.clickOnText("Preferences");
                solo.clickOnText("Edit File Extensions");
                Assert.assertTrue(solo.searchText("rtf"));
               
                solo.clickOnText("txt");
                solo.clearEditText(2);
                solo.enterText(2, "robotium");
                solo.clickOnButton("Save");
                solo.goBack();
                solo.clickOnText("Edit File Extensions");
                Assert.assertTrue(solo.searchText("application/robotium"));
               
  }

   @Override
   public void tearDown() throws Exception {

        try {
                solo.finalize();
        } catch (Throwable e) {

                e.printStackTrace();
        }
        getActivity().finish();
        super.tearDown();

  }
}
作者: Jackc    时间: 2010-6-10 10:23
标题: 回复 6# 的帖子
robotium 是个很有前途的工具,不过目前只能以第三方软件的形式装在手持终端上测试,期待它的后续版本。
作者: frankwangzy1103    时间: 2010-6-10 20:38
我也去跑过那个demo,在真机上可以通过USB调试模式跑起来(SDK1.6)
但是不晓得现在有没有不依赖于工程的版本。

另外有哪位大侠知道怎么怎么在android的project里面截图吗?
我现在只能获得RawImage,但是还没有想到怎么转换成通用格式的图片。藐视android project不支持Image类。
作者: kaza    时间: 2010-6-11 11:40
robotium的讨论组里有个话题是提到截图的 需要翻墙才能访问
http://groups.google.com/group/r ... d/b971d5f27edb0a86#

将需要截屏的图像保存在sd卡上,在编写testcase时调用 takeScreenShot()方法就能完成指定的截屏
Just wanted to share how you can take canvas screen shots and save to
sdcard during test, something to add to robotium...

        public static String SCREEN_SHOTS_LOCATION="/sdcard/";


        public static void takeScreenShot(View view) throws Exception {
                takeScreenShot(view, "default");
        }


        public static void takeScreenShot(View view, String name) throws
Exception {
                view.setDrawingCacheEnabled(true);
                view.buildDrawingCache();
                Bitmap b = view.getDrawingCache();
                FileOutputStream fos = null;
                try {
                        File sddir = new File(SCREEN_SHOTS_LOCATION);
                        if (!sddir.exists()) {
                                sddir.mkdirs();
                        }
                        fos = new FileOutputStream(SCREEN_SHOTS_LOCATION+name+"_"
                                        + System.currentTimeMillis() + ".jpg");
                        if (fos != null) {
                                b.compress(Bitmap.CompressFormat.JPEG, 90, fos);
                                fos.close();
                        }
                } catch (Exception e) {
                }
        }


//call
takeScreenShot(solo.getViews().get(0), "testname");
作者: frankwangzy1103    时间: 2010-6-12 18:57
感谢楼上,经测试,完全可以。
非常感谢。
另外,希望这个贴子不要沉。
我的下面一个问题是:
对于这个测试工程,如果组织测试用例的框架。
比如说,我现在有一个测试工程NotePadTest
我想分成2个模块来进行测试
1、是notepadEdit 的activity
2、是notepadList的activity
那么我的case组织该如何安排?
作者: kaza    时间: 2010-6-13 14:41
试一试用android maven组织测试结构

[ 本帖最后由 kaza 于 2010-6-17 15:07 编辑 ]
作者: kaza    时间: 2010-6-18 12:35
有个疑问一直困扰着我,希望有人能解答
在eclipse中编写unit test时用的junit版本为4,语法风格也按照junit4的书写,但是貌似android的test runner是调用junit3.x完成测试的。
所以test case和test方法要用test作为前缀,没法使用@Test public void method(){}。
作者: frankwangzy1103    时间: 2010-6-18 16:28
藐视目前的1.6之前的sdk不支持junit4,其他的支持不支持不知道哎。
另外,楼上android maven应该是工程管理的吧?
作者: xsheep    时间: 2010-6-19 10:18
QTP+imageXpro
作者: roger_ge    时间: 2010-7-6 22:16
Android系统下应用程序的测试现在应该还算是个新的领域,网上关于这方面的资料很多都是基于白盒测试的,一般都是基于JUnit框架和Android SDK中android.test等命名空间下的内容进行(像robotium,autoAndroid这两个Google的开源项目),但是有一个前提,那就是必须要有应用程序的源代码以提供测试接入点,但是这在很多软件公司中是不现实的。很多测试工程师做的工作是完全黑盒,基本接触不到源代码,白盒测试大部分也是由开发自己完成。

本人花了一点时间研究了一下Android的纯黑盒测试(下面链接),希望对同学们有点帮助,欢迎交流!
http://blog.csdn.net/roger_ge/category/680331.aspx
作者: kaza    时间: 2010-7-7 15:38
To Roger:
robotium可以只使用apk测试,不需要接触源码,但是需要开发人员提供详细的GUI activity清单,最好对各个activity之间的工作流程有详细的图示。
参考http://code.google.com/p/robotium/wiki/RobotiumForAPKFiles


PS:我曾经在你空间中留言过,robotium和autoandriod。
作者: roger_ge    时间: 2010-7-7 17:34
原帖由 kaza 于 2010-7-7 15:38 发表
To Roger:
robotium可以只使用apk测试,不需要接触源码,但是需要开发人员提供详细的GUI activity清单,最好对各个activity之间的工作流程有详细的图示。
参考http://code.google.com/p/robotium/wiki/RobotiumFor ...


多谢kaza同学的指引,空时研究一下
作者: pbz    时间: 2010-7-12 11:21
大家是否有相应的测试用例啊?有的话,麻烦转我个 peng.baozhu@spreadway.com.cn 谢谢啦
作者: leondf25    时间: 2010-7-16 15:51
标题: 回复 4# 的帖子
如果只是想把将屏幕映射到PC的模拟器上,可以考虑使用ASM(Java 程序。需要机器上安装java环境)

命令行模式运行 X:\java -jar asm.jar(默认asm.jar在X盘下)

By the way,android adb drivers is needed。
作者: leondf25    时间: 2010-7-16 15:52
标题: 回复 4# 的帖子
如果只是想把将屏幕映射到PC的模拟器上,可以考虑使用ASM(AndroidScreenMonitor 是Java 程序。需要机器上安装java环境)

命令行模式运行 X:\java -jar asm.jar(默认asm.jar在X盘下)

附件是基于android 2.1运行在win platform下的

By the way,android adb drivers is needed。

[ 本帖最后由 leondf25 于 2010-7-16 16:02 编辑 ]
作者: satiling    时间: 2010-8-9 10:30
Failed to get the adb version:Can not run program "adb":creatProcess error=2

根本不行,我的android adb drivers已经安装了
作者: wan_xie2007    时间: 2010-8-16 18:28
标题: 大家好
大家好,目前我也在探索 android robotium 工具 的使用 。
各位同仁可以加我MSN:wanbiao2008@hotmail.com
作者: pu_putao    时间: 2010-9-15 17:17
原帖由 roger_ge 于 2010-7-6 22:16 发表
Android系统下应用程序的测试现在应该还算是个新的领域,网上关于这方面的资料很多都是基于白盒测试的,一般都是基于JUnit框架和Android SDK中android.test等命名空间下的内容进行(像robotium,autoAndroid这两个Go ...


从事android平台上的黑盒测试,可能在环境上是一个大的问题吧。我最近就有个问题困扰我呢。我就在这里提问了。

-----------------------留言和提问的分割线-----------------------
因为要开始一个和Framework相关的项目。本人是测试,所以需要在emulator上配置好进行测试先,然后到真机。目前对于emulator上的问题如下:

1.如何利用AVD manager如何添加一个新device,这个device要使用从developer得到的image文件。我目前使用cmd可以加载,但是每次运行都去敲命令,显得很不方便。

2.考虑到project里肯定对于emulator有特殊的要求,同时也学习,请问如何在cmd里面配置新建device的各种属性,诸如尺寸、是否触屏之类的。

3.AVD manager里面的targets和我从developer得到的image文件有什么关系。上次问过公司里的前辈,说是image所基于的version。既然是version,那么如何添加image进来呢。
作者: CharlesWang    时间: 2010-9-19 15:11
小弟插个楼。Android学习中,帖子别沉。感谢各位的分享!
作者: darenmax911    时间: 2010-10-11 11:53
最近在研究google官方提供的CTS测试工具,可惜CTS功能不够强大,继续学习中
作者: wyfyan    时间: 2010-10-23 18:02
顶顶
作者: linyucc    时间: 2010-10-25 09:59
code.google.com/p/robotium
作者: chenkang1009    时间: 2011-1-19 14:56
顶下,希望大家有好的经验继续分享
作者: 堕入黑暗    时间: 2011-2-9 17:02
此贴甚好。值得更深入的学习。要持续关注一下。。
作者: junlingliu    时间: 2011-3-11 15:58
大家讨论的很热烈阿,标记下,学习了!
作者: wjxsc1005    时间: 2011-3-14 10:56
monkey test也算是自动化测试的一种吧?
作者: Legonxman    时间: 2011-3-16 14:10
QC+QTP+SEETEST
作者: addvalue    时间: 2011-4-9 08:04
下周组织一次上海地区沙龙专门探讨此问题
作者: thanks010    时间: 2011-4-12 14:35
研究一下
作者: thanks010    时间: 2011-4-12 14:36
下周组织一次上海地区沙龙专门探讨此问题
addvalue 发表于 2011-4-9 08:04



    我也想听听看
作者: ling2011    时间: 2011-4-27 14:41
回复 34# Legonxman


    这个方法倒是能用,有没有方法可以**seetest呢,不然许可证到期了,就没法用了
作者: steaven800    时间: 2012-7-10 22:26
谁很熟悉robotium针对第三方的软件测试呢?
作者: testjan    时间: 2014-1-6 09:52
有没有活动啊,我也是做这一块的,有机会大家组织交流一下。
作者: lemonyue    时间: 2014-3-4 16:43
有用过appium的朋友吗?
作者: xiaomili00001    时间: 2014-4-14 13:16
可看金阳光Android自动化提高篇
万能的instrumataion框架(上)
下载:http://pan.baidu.com/s/1hqqmjQW#
欢迎加入qq群:211574787




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2