有人能告诉我使用MonkeyTalk为Android项目配置Ant所涉及的详细步骤吗。我有一个Android项目,MonkeyTalk代理和AntRunner。
我需要使用Ant自动生成Android构建。此外,MonkeyTalk应该集成在构建中。
这可能使用AntRunner吗?
对于动态检测,您可以尝试以下示例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 instrum
MonkeyTalk Professional提供Android应用程序的应用程序控制(请参阅专业应用程序控制)。MonkeyTalk Professional Ant库包含一个应用程序任务,允许您控制测试中的应用程序。应用程序任务包括安装、卸载、启动、启动、停止和重新启动应用程序的功能。目前,仅支持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 target完成了所有的工作。首先是为应用程序提供工具。然后卸载以确保目标设备是干净的。然后它安装并启动插入指令的应用程序。接下来,它运行MonkeyTalk测试套件。最后,它在自己之后再次卸载进行清理。注意:这只是安卓系统(因为动态仪表和应用程序控制目前只适用于安卓系统)。
你可以这样从命令行运行它:
ant-lib/path/to/monkeytalkpro-ant-2.0.2.beta.jar所有