【问题标题】:MonkeyTalk with AntRunnerMonkeyTalk 与 AntRunner
【发布时间】:2014-11-04 07:07:54
【问题描述】:

谁能告诉我使用 MonkeyTalk 为 Android 项目配置 Ant 的详细步骤。我有一个 Android 项目、MonkeyTalk 代理和 AntRunner。

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

这可以使用 AntRunner 吗?

【问题讨论】:

    标签: ant monkeytalk


    【解决方案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 仪器

    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 all

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2013-08-02
      相关资源
      最近更新 更多