51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 23800|回复: 40
打印 上一主题 下一主题

大家讨论一下,android平台自动化测试如何实施?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-6-5 18:47:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前公司打算在功能测试这块实施自动化,关于这块,谁有什么好的思路聊一下?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-6-7 13:45:26 | 只看该作者
共同关注、目前android测试刚开始,希望高手们多发言
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-6-8 17:30:28 | 只看该作者
别沉
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-6-8 17:49:18 | 只看该作者
我有个问题,android的真机能通过串口将屏幕映射到PC的模拟器上吗?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-6-8 17:56:51 | 只看该作者

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
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-6-9 14:46:23 | 只看该作者
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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-6-9 14:47:58 | 只看该作者
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();

  }
}
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-6-10 10:23:09 | 只看该作者

回复 6# 的帖子

robotium 是个很有前途的工具,不过目前只能以第三方软件的形式装在手持终端上测试,期待它的后续版本。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-6-10 20:38:14 | 只看该作者
我也去跑过那个demo,在真机上可以通过USB调试模式跑起来(SDK1.6)
但是不晓得现在有没有不依赖于工程的版本。

另外有哪位大侠知道怎么怎么在android的project里面截图吗?
我现在只能获得RawImage,但是还没有想到怎么转换成通用格式的图片。藐视android project不支持Image类。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-6-11 11:40:52 | 只看该作者
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");
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-6-12 18:57:34 | 只看该作者
感谢楼上,经测试,完全可以。
非常感谢。
另外,希望这个贴子不要沉。
我的下面一个问题是:
对于这个测试工程,如果组织测试用例的框架。
比如说,我现在有一个测试工程NotePadTest
我想分成2个模块来进行测试
1、是notepadEdit 的activity
2、是notepadList的activity
那么我的case组织该如何安排?
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-6-13 14:41:59 | 只看该作者
试一试用android maven组织测试结构

[ 本帖最后由 kaza 于 2010-6-17 15:07 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2010-6-18 12:35:12 | 只看该作者
有个疑问一直困扰着我,希望有人能解答
在eclipse中编写unit test时用的junit版本为4,语法风格也按照junit4的书写,但是貌似android的test runner是调用junit3.x完成测试的。
所以test case和test方法要用test作为前缀,没法使用@Test public void method(){}。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2010-6-18 16:28:05 | 只看该作者
藐视目前的1.6之前的sdk不支持junit4,其他的支持不支持不知道哎。
另外,楼上android maven应该是工程管理的吧?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2010-6-19 10:18:42 | 只看该作者
QTP+imageXpro
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2010-7-6 22:16:49 | 只看该作者
Android系统下应用程序的测试现在应该还算是个新的领域,网上关于这方面的资料很多都是基于白盒测试的,一般都是基于JUnit框架和Android SDK中android.test等命名空间下的内容进行(像robotium,autoAndroid这两个Google的开源项目),但是有一个前提,那就是必须要有应用程序的源代码以提供测试接入点,但是这在很多软件公司中是不现实的。很多测试工程师做的工作是完全黑盒,基本接触不到源代码,白盒测试大部分也是由开发自己完成。

本人花了一点时间研究了一下Android的纯黑盒测试(下面链接),希望对同学们有点帮助,欢迎交流!
http://blog.csdn.net/roger_ge/category/680331.aspx
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2010-7-7 15:38:58 | 只看该作者
To Roger:
robotium可以只使用apk测试,不需要接触源码,但是需要开发人员提供详细的GUI activity清单,最好对各个activity之间的工作流程有详细的图示。
参考http://code.google.com/p/robotium/wiki/RobotiumForAPKFiles


PS:我曾经在你空间中留言过,robotium和autoandriod。
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2010-7-7 17:34:24 | 只看该作者
原帖由 kaza 于 2010-7-7 15:38 发表
To Roger:
robotium可以只使用apk测试,不需要接触源码,但是需要开发人员提供详细的GUI activity清单,最好对各个activity之间的工作流程有详细的图示。
参考http://code.google.com/p/robotium/wiki/RobotiumFor ...


多谢kaza同学的指引,空时研究一下
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2010-7-12 11:21:52 | 只看该作者
大家是否有相应的测试用例啊?有的话,麻烦转我个 peng.baozhu@spreadway.com.cn 谢谢啦
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2010-7-16 15:51:41 | 只看该作者

回复 4# 的帖子

如果只是想把将屏幕映射到PC的模拟器上,可以考虑使用ASM(Java 程序。需要机器上安装java环境)

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

By the way,android adb drivers is needed。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-3 14:23 , Processed in 0.088075 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表