Ant 安特鲁纳的MonkeyTalk

Ant 安特鲁纳的MonkeyTalk,ant,monkeytalk,Ant,Monkeytalk,有人能告诉我配置Ant for Android项目和MonkeyTalk的详细步骤吗。我有一个Android项目,MonkeyTalk代理和AntRunner 我需要使用Ant自动生成Android构建,MonkeyTalk也应该集成到构建中 这是否可能使用AntRunner?对于动态检测,您可以尝试以下示例Ant脚本: 将上述脚本另存为build.xml,您可以从命令行运行它,如下所示: ant-lib/path/to/monkeytalkpro-ant-2.0.2.beta.jar

有人能告诉我配置Ant for Android项目和MonkeyTalk的详细步骤吗。我有一个Android项目,MonkeyTalk代理和AntRunner

我需要使用Ant自动生成Android构建,MonkeyTalk也应该集成到构建中


这是否可能使用AntRunner?

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


将上述脚本另存为build.xml,您可以从命令行运行它,如下所示:

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

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

下面是一个示例Ant脚本,用于执行所有应用程序控制操作:


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

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


上述脚本中的all目标完成所有工作。首先是应用程序。然后卸载以确保目标设备干净。然后安装并启动插入指令的应用程序。接下来,它运行MonkeyTalk测试套件。最后,它会再次卸载,以便在自身运行后进行清理。注意:这仅适用于Android(因为动态指令插入和应用程序控制目前仅适用于Android)

您可以从命令行运行它,如下所示:

ant-lib/path/to/monkeytokpro-ant-2.0.2.beta.jar all

<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>
<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>
<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>