当前位置:首页 > 开发教程 > 手机开发 >

分发仪器测试,所有的安卓应用程序。

时间:2016-02-16 13:11 来源:互联网 作者:源码搜藏 收藏

介绍 Android 的不断扩展设备的生态系统来创建测试应用了独特的挑战。 勺旨在通过分发仪器测试执行和显示以有意义的方式的结果,以简化该任务。 相反,试图要测试的一种新形式,使勺现有仪器的测试更加有用。 使用应用程序APK和仪器APK,勺同时运行在多个设

介绍

Android的不断扩展设备的生态系统来创建测试应用了独特的挑战。勺旨在通过分发仪器测试执行和显示以有意义的方式的结果,以简化该任务。

相反,试图要测试的一种新形式,使勺现有仪器的测试更加有用。使用应用程序APK和仪器APK,勺同时运行在多个设备上测试。一旦所有测试已完成与每个设备和测试的详细信息生成静态HTML摘要。

分发仪器测试,所有的安卓应用程序。

勺子将这些都是可见的所有目标运行ADB设备插入多个不同的手机和片剂,启动仿真器的不同配置,或者使用两者的某种组合!

在使用的目标的更加多样化,更加有用的输出会在可视化应用程序。

截图

除了简单地运行仪器测试,勺子有在测试过程中然后将其包含在输出捕捉关键点截屏的能力。这使得在不同设备上测试执行的目视检查。

截屏,您需要包括勺子,客户在你的仪表应用JAR。对于勺子截图保存您的应用程序必须有 WRITE_EXTERNAL_STORAGE权限。在你的测试中调用的截图 与人类可读的标记方法。


	
Spoon.screenshot(activity, "initial_state");
/* Normal test code... */
Spoon.screenshot(activity, "after_login");

指定的标签将被用来识别和比较多个测试运行截取的屏幕截图。

分发仪器测试,所有的安卓应用程序。

您还可以查看每个测试的截图为GIF动画来衡量交互的实际序列。

如果你有文件,这将帮助你在调试或审核。试运行,例如日志文件或SQLite数据库,你可以很容易地保存这些文件,并将它们连接到您的测试报告。这将让你轻松地深入发生在测试运行的任何问题。

附加文件到您的报告,您需要包括勺子客户端瓶子和你有WRITE_EXTERNAL_STORAGE 许可。

//使用绝对路径字符串
Spoon.save(context, "/data/data/com.yourapp/your.file");
//或文件
Spoon.save(context, new File(context.getCacheDir(), "my-database.db"));

分发仪器测试,所有的安卓应用程序。

你可以通过点击设备中报告的文件名下载文件。

下载

下载最新的亚军JAR最新的客户端JAR,或者只是添加到您的依赖关系:

Maven的:


	
<dependency>
  <groupId>com.squareup.spoon</groupId>
  <artifactId>spoon-client</artifactId>
  <version>1.3.1</version>
</dependency>

摇篮:我们推荐使用gradle这个插件(目前保持为一个单独的项目)。

开发版快照是可Sonatype的的快照

执行

勺子被设计作为一个独立的工具,或直接作为构建系统的一部分来运行。

您可以运行勺子与你的应用程序和仪器的APK一个独立的工具。

Java的罐子勺亚军1.3.1-JAR与 -  dependencies.jar \
    --apk ExampleApp中,debug.apk \
    --test-APK ExampleApp中-调试androidTest-unaligned.apk

默认情况下,输出将被放置在当前目录的勺子输出/文件夹。您可以通过控制其他标志执行额外的参数。


Options:
    --apk               Application APK
    --output            Output path
    --sdk               Path to Android SDK
    --test-apk          Test application APK
    --title             Execution title
    --class-name        Test class name to run (fully-qualified)
    --method-name       Test method name to run (must also use --class-name)
    --no-animations     Disable animated gif generation
    --size              Only run test methods annotated by testSize (small, medium, large)
    --adb-timeout       Set maximum execution time per test in seconds (10min default)
    --fail-on-failure   Non-zero exit code on failure
    --fail-if-no-device-connected Fail if no device is connected
    --sequential        Execute the tests device by device
    --init-script       Path to a script that you want to run before each device
    --e                 Arguments to pass to the Instrumentation Runner. This can be used
                        multiple times for multiple entries. Usage: --e <NAME>=<VALUE>.
                        The supported arguments varies depending on which test runner 
                        you are using, e.g. see the API docs for AndroidJUnitRunner.

如果你正在使用Maven的编译,插件提供了易于执行。声明插件在pom.xml中的仪器测试模块。


	
<plugin>
  <groupId>com.squareup.spoon</groupId>
  <artifactId>spoon-maven-plugin</artifactId>
  <version>1.3.1</version>
</plugin>

该插件会寻找一个APK为相应的应用程序依赖。通常这是在与平行指定罐子上的应用程序的依赖。


	
<dependency>
  <groupId>com.example</groupId>
  <artifactId>example-app</artifactId>
  <version>${project.version}</version>
  <type>jar</type>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>com.example</groupId>
  <artifactId>example-app</artifactId>
  <version>${project.version}</version>
  <type>apk</type>
  <scope>provided</scope>
</dependency>

您可以通过运行调用插件MVN勺子:运行执行结果将被放置在靶/匙输出/文件夹。如果要指定一个测试类运行,加-Dspoon.test.class = fully.qualified.ClassName如果您只想运行该类一个测试,加-Dspoon.test.method = testAllTheThings

对于一个工作示例看到示例应用程序和仪器测试勺子采样/文件夹中。

测试分片

Android的仪表亚军支持使用测试分片numShardsshardIndex参数(文档)。

您可以使用--e用勺子选项通过对仪器亚军,例如通过这些参数


java -jar spoon-runner-1.3.1-jar-with-dependencies.jar \
    --apk ExampleApp-debug.apk \
    --test-apk ExampleApp-debug-androidTest-unaligned.apk \
    --e numShards=4 \
    --e shardIndex=0

如果你使用詹金斯,建立分片的好办法是一个“多配置项目”里。

  • 添加“用户定义轴”。选择的碎片索引变量的名称,定义要(在零开始)的索引值。

    分发仪器测试,所有的安卓应用程序。

  • 在你的“执行shell”的步骤,使用相同的执行命令同上,但你使用上面定义的变量,例如注入每一个从节点碎片指数--e shardIndex = $ {} shard_index确保你在碎片的正确总数传球太多,比如--e numShards = 4

    分发仪器测试,所有的安卓应用程序。

运行特定测试

有许多方式来运行一个特定的测试,或一组测试。你可以用勺子--size--class名--method名选项,也可以使用--e选项参数传递到仪表亚军,如

    --e包= com.mypackage.unit_tests

手机开发阅读排行

最新文章