Robotium 专题(二): Robotium 只有 apk 文件时进行测试

转载地址:http://testerhome.com/topics/1655

这个只有APK的时候进行测试,是我亲身实践后,觉得这篇文章比较有用,所以就发在这里了!
昨天看到一个帖子写了对自动化的一些茫然,说句实话,我也觉得自动化现在用处不是特别大,但我觉得将来自动化是一个比较好得趋势,移动端虽然产品迭代快,但对一般性的回归测试,我觉得自动化还是能省一些时间的。
另外,还看到一些对测试感觉茫然的朋友,其实我想说,在现有的环境下,无论做什么事情或者什么工作,都会有厌烦的时候,但一定不要一感到厌烦就想放弃,然后找各种借口去给自己留后路,我个人认为只要勤奋、肯学习,无论是技术还是管理,用心坚持去做,都能做出一番自己的事业!
好了,长话短说,既然现在选择做测试,那么就把现有的测试做好,做精,做专,这样即使转行,也可以给自己一个好的交代!



首先:设置环境变量

  1. 配置ANDROID_HOME为android sdk的安卓目录,例如:D:\android-sdk
  2. 在path下添加这两个:
    %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;
    其次: 安装签名文件

  3. 因为robotium要求被测应用和测试代码要有一致的签名, 所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了
    re-sign.jar可以从这里下载到:
    http://www.troido.de/re-sign.jar

  4. 下载完后,在命令行下 通过 java -jar re-sign.jar就会出现一个节目,然后将apk拖到这个节目,就会自动生成一个debug key的apk
    产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到

  5. 安装产生的apk。然后打开模拟器(模拟器器一定要打开才能安装成功),然后打开命令行 adb install mitalk_debug.apk(新生成apk的名称) , 或者双击apk文件也可以安装
    安装成功就可以再模拟器里看到该应用的图标了
    然后:创建项目(使用米聊apk)

  6. 打开Eclipse,点击File->New一个Android Test Project ApkTest, 然后点击下一步的时候选择This project(因为我们没有米聊应用的源码),然后选择要在哪个android版本上测试

  7. 在该项目下创建一个包,com.mitalk.test,在该包下创建LoginTest类,如下

package com.mitalk.test;
//需要导入的包
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import com.jayway.android.robotium.solo.Solo;
@SuppressWarnings("rawtypes")
public class LoginTest extends ActivityInstrumentationTestCase2 {
       //定义变量
public Solo solo;
public Activity activity;
private static Class<?> launchActivityClass;
//对应re-sign.jar生成出来的信息框里的两个值
private static String mainActiviy = "com.xiaomi.channel.ui.ChannelLauncherActivity";
private static String packageName = "com.xiaomi.channel";
         static {
                  try {
                      launchActivityClass = Class
.                     forName(mainActiviy);
                    } catch (ClassNotFoundException e)
                   {
                  throw new RuntimeException(e);
                  }
                 }
@SuppressWarnings("unchecked")
public LoginTest() { 
super(packageName, launchActivityClass);
                          }
@Override
protected void setUp() throws Exception {
super.setUp();
this.activity = this.getActivity();
this.solo = new Solo(getInstrumentation(), getActivity());
}
public void testLoginWithIncorrentUsernameAndPassword() {
              //一定时间内等待text出现,否则就出错
              solo.waitForText("Log In", 1, 10000);
              //点击text “Log In”
              solo.clickOnText("Log In");
              //一定时间内等待text出现,否则就出错
              solo.waitForText("OK", 1, 2000);
              //输入text
              solo.enterText(0, "13559494170");
              solo.enterText(1, "123456");
              //点击text “OK”
              solo.clickOnText("OK");
              //等待出现下面的text后,进行验证
              solo.waitForText("Incorrect ID number or password.", 1, 10000);
              assertTrue(solo.searchText("Incorrect ID number or password.",true));
}
@Override
public void tearDown() throws Exception {
try {
this.solo.finishOpenedActivities();
} catch (Throwable e) {
e.printStackTrace();
}
this.activity.finish();
super.tearDown();
}
}
  1. 右键该项目,选择property然后选择java build path, 选择 Add External JARs,选择下到的robotium.jar

  2. 在跑测试用例之前,还需要修改下AndroidManifest.xml文件的android:targetPackage为被测应用的根的包名
    <instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.xiaomi.channel" />

    最后: run as android junit test,就可以进行测试了


深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
【4层】3100平米综合办公楼毕业设计(含计算书、建筑结构图) 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值