(转)robotium脚本封装为APK,实现脱离手机数据线,使用按钮点击控制用例运行

转载 2015年07月08日 11:04:31

原文:http://blog.sina.com.cn/s/blog_5b478f870102v9my.html


最近一直在完成一些robotium的小功能,用来更方便的完成一些小功能的测试,或者可以说用来娱乐吧,幸得群内大神思路指点,就此引申,终于把这个功能得以实现

---------------将robotium脚本封装为APK,使用按钮控制用例运行覆盖程度,测试结果以简单的xml文件输入到手机SD卡目录下----------------------

废话不多说,转正题:

一、首先明确一点,这篇文章,是在你所编写的robotium脚本运行无异常的前提下实施

二、阐明思路:

   1.我们需要一个运行良好的,逻辑正常的robotium工程

   2.我们需要一个可以将脚本用例运行结果保存至本地的方法

   3.我们需要一个activity,一个按钮,以及一个按钮点击事件去运行我们的robotium脚本

 

三、先介绍脚本用例运行结果的功能,我们都知道robotium用例的运行是依赖junit的Instrumentation的,所以,关于结果的输出,需要我们重写InstrumentationTestRunner类

 

package baih;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer;

import android.content.Context;
import android.os.Bundle;
import android.os.Environment;


public class InstrumentationTestRunner extends android.test.InstrumentationTestRunner {
    private Writer mWriter;
    private XmlSerializer mTestSuiteSerializer;
    private long mTestStarted;
    private static final String JUNIT_XML_FILE = "TEST-all.xml";
   
   
    @Override
    public void onStart() {
        try{
            File fileRobo = new File(getTestResultDir(getTargetContext()));
            if(!fileRobo.exists()){
                fileRobo.mkdir();
            }
            if(isSDCardAvaliable()){   
                File resultFile = new File(getTestResultDir(getTargetContext()),JUNIT_XML_FILE);
                startJUnitOutput(new FileWriter(resultFile));
            }else{
                startJUnitOutput(new FileWriter(new File(getTargetContext().getFilesDir(), JUNIT_XML_FILE)));
            }           
        }
        catch(IOException e){
            throw new RuntimeException(e);
        }
        super.onStart();
    }

    void startJUnitOutput(Writer writer) {
        try {
            mWriter = writer;
            mTestSuiteSerializer = newSerializer(mWriter);
            mTestSuiteSerializer.startDocument(null, null);
            mTestSuiteSerializer.startTag(null, "testsuites");
            mTestSuiteSerializer.startTag(null, "testsuite");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
   
   
    private boolean isSDCardAvaliable(){
        return Environment.getExternalStorageState()
                    .equals(Environment.MEDIA_MOUNTED);   
    }
   
   
    private String getTestResultDir(Context context){
        String packageName = "/" + "robotium";
        String filepath = context.getCacheDir().getPath() + packageName;
       
        if(android.os.Build.VERSION.SDK_INT < 8){
            if(isSDCardAvaliable()){
                filepath = Environment.getExternalStorageDirectory().getAbsolutePath()+ packageName;
            }
        }else{
            if(isSDCardAvaliable()){
                filepath = Environment.getExternalStorageDirectory().getAbsolutePath()+ packageName;
          

robotium脚本封装APK,脱离手机数据线

最近一直在完成一些robotium的小功能,用来更方便的完成一些小功能的测试,或者可以说用来娱乐吧,幸得群内大神思路指点,就此引申,终于把这个功能得以实现 ---------------将robot...
  • dakataka
  • dakataka
  • 2015年04月27日 15:59
  • 216

Android Robotium黑盒测试封装为Apk

Android Robotium黑盒测试封装为Apk如何在只有Apk的情况下进行测试?而且要写一个Android程序让被测试的app测试用例跑起来,然后再记录一些参数。使手机在脱离数据线的情况下尽情执...
  • java201159416
  • java201159416
  • 2016年06月27日 17:14
  • 477

Android手机上,利用bat脚本模拟用户操作

转载自:http://blog.csdn.net/up7cr/article/details/50577559 大家可能会遇到这样的情景: #  也许你是一个通过App的销售人员,需要不断...
  • lzm198707
  • lzm198707
  • 2017年05月05日 13:49
  • 1346

Jenkins+Ant+Android+Robitium 实例详解(打包app,执行Robotium测试,生成测试结果)

Jenkins Ant 打包android app,构建Robotium测试,执行Robotium测试,生成测试结果 实例详解 说明: android project 名称: cheersApp an...
  • achang21
  • achang21
  • 2015年04月23日 19:49
  • 4638

Android测试之Robotium自动化测试框架

一、简介 Robotium是一款国外的自动化测试框架,是一款免费的Android UI测试工具,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查...
  • syz50113
  • syz50113
  • 2017年06月14日 00:17
  • 449

已知控件的id,在Robotium中如何模拟按键

http://blog.sina.com.cn/s/blog_6abda9bc01015zoc.html
  • jlminghui
  • jlminghui
  • 2014年10月23日 10:36
  • 1470

关于研究UIautomator操作手机执行case

在Android 4.1发布的时候包含了一种新的测试工具– uiautomator ,uiautomator是用来做UI测试的。也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期。...
  • Mind_Reader
  • Mind_Reader
  • 2015年08月13日 11:19
  • 1403

简单介绍如何使用robotium进行自动化测试

本文转自:http://www.51testing.com/?uid-115892-action-viewspace-itemid-223476   1.      创建一个简单的工程(可参考本人...
  • zhangmiaoping23
  • zhangmiaoping23
  • 2016年11月01日 11:12
  • 548

Android自动化测试之Robotium登陆测试用例

1).     在 ROTest->src->com.liliandroid.helloworld.test上,右击选择New->Class,创建一个Test Case。 2).     ...
  • wugang8023
  • wugang8023
  • 2014年10月09日 22:13
  • 858

robotium—只有apk文件的测试

把ppt的内容总结一下,并把问题说明一下: 把基本步骤搞出来,用notepad的程序吧,直接安装apk,就当做是不知道源码就好啦! 直接用自己的手机上就行啦!!   一、重签名: 步骤: ...
  • dan729
  • dan729
  • 2015年03月02日 14:30
  • 490
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(转)robotium脚本封装为APK,实现脱离手机数据线,使用按钮点击控制用例运行
举报原因:
原因补充:

(最多只允许输入30个字)