0

Can somebody please give me the detailed steps involved in configuring Ant for Android project with MonkeyTalk. I have an Android project, MonkeyTalk agent and AntRunner.

I need to automate the Android build generation using Ant also, MonkeyTalk should be integrated in the build.

Is this possible using AntRunner?

4

1 回答 1

1

对于动态检测,您可以尝试以下示例 Ant 脚本:

<target name="instru">
    <mt:instrument
        src="/path/to/MyApp.apk"
        dest="/path/to/MyApp-Instrumented.apk"
        agent="/path/to/monkeytalk-agent-2.0.2.jar"
        androidSdk="/path/to/android-sdk"
        androidTarget="android-19"
        log="log.txt"
        verbose="true" />
    </target>

将上述脚本另存为 build.xml ,您可以像这样从命令行运行它:

ant -lib /path/to/monkeytalkpro-ant-2.0.2.beta.jar instru

MonkeyTalk Professional 提供对 Android 应用程序的应用程序控制(请参阅 Pro 应用程序控制)。MonkeyTalk Professional Ant 库包含一个 App 任务,允许您控制被测应用程序。应用程序任务包括安装、卸载、启动、启动、停止和重新启动应用程序的能力。目前,仅支持 Android。

下面是一个练习所有应用程序控制操作的示例 Ant 脚本:

<property name="sdk.dir" value="/path/to/android-sdk" />
<property name="packageName" value="com.example.myapp" />
<property name="activityName" value="RootActivity" />

<target name="install">
    <mt:app action="install"
        binary="Out.apk"
        androidSdk="${sdk.dir}"
        verbose="true" />
</target>

<target name="uninstall">
    <mt:app action="uninstall"
        packageName="${packageName}"
        androidSdk="${sdk.dir}"
        verbose="true"  />
</target>

<target name="launch">
    <mt:app action="launch"
        packageName="${packageName}"
        activityName="${activityName}"
        androidSdk="${sdk.dir}"
        verbose="true" />
</target>

<target name="restart">
    <mt:app action="relaunch"
        packageName="${packageName}"
        activityName="${activityName}"
        androidSdk="${sdk.dir}"
        verbose="true" />
</target>

<target name="stop">
    <mt:app action="stop"
        packageName="${packageName}"
        androidSdk="${sdk.dir}"
        verbose="true" />
</target>

<target name="isInstalled">
    <mt:app action="isInstalled"
        packageName="${packageName}"
        androidSdk="${sdk.dir}"
        verbose="true" />
    <echoproperties prefix="monkeytalk" />
</target>

<target name="isRunning">
    <mt:app action="isRunning"
        packageName="${packageName}"
        androidSdk="${sdk.dir}"
        verbose="true" />
    <echoproperties prefix="monkeytalk" />
</target>

在 CI 中运行 当在 Jenkins 等持续集成 (CI) 服务器上运行测试时,您通常会将上述所有 Ant 任务以及用于测试的常规 MonkeyTalk Run 任务(请参阅 Ant Runner)组合到一个 Ant 脚本中。

这是 CI 中使用的示例 Ant 脚本:

<property name="sdk.dir" value="/path/to/android-sdk" />
<property name="instrumentedApp" value="/path/to/MyApp-Instrumented.apk" />
<property name="packageName" value="com.example.myapp" />
<property name="activityName" value="RootActivity" />

<target name="instru">
    <mt:instrument
        src="/path/to/MyApp.apk"
        dest="${instrumentedApp}"
        agent="/path/to/monkeytalk-agent-2.0.2.jar"
        androidSdk="${sdk.dir}" />
</target>

<target name="uninstall">
    <mt:app action="uninstall"
        packageName="${packageName}"
        androidSdk="${sdk.dir}"
        verbose="true"  />
</target>

<target name="install">
    <mt:app action="install"
        binary="${instrumentedApp}"
        androidSdk="${sdk.dir}"
        verbose="true" />
</target>

<target name="launch">
    <mt:app action="launch"
        packageName="${packageName}"
        activityName="${activityName}"
        androidSdk="${sdk.dir}"
        verbose="true" />
</target>

<target name="test">
    <mt:run
        agent="AndroidEmulator"
        adb="${sdk.dir}/platform-tools/adb"
        thinktime="1000"
        timeout="10000"
        suite="${basedir}/mysuite.mts"
        reportdir="${basedir}/myreports"
        startup="30"
        verbose="true" />
</target>

<target name="all">
    <antcall target="instru" />
    <antcall target="uninstall" />
    <antcall target="install" />
    <antcall target="launch" />
    <antcall target="test" />
    <antcall target="uninstall" />
</target>

上述脚本中的 all 目标完成了所有工作。首先是仪器应用程序。然后它会卸载以确保目标设备是干净的。然后它会安装并启动已检测的应用程序。接下来它运行 MonkeyTalk 测试套件。最后,它会再次卸载以自行清理。注意:这仅适用于 Android(因为 Dynamic Instrumentation 和 App Control 目前仅适用于 Android)。

您可以像这样从命令行运行它:

ant -lib /path/to/monkeytalkpro-ant-2.0.2.beta.jar 全部

于 2015-07-24T10:33:05.130 回答