手把手教你ranorex_android自动化测试第一个示例

简介: 要说android的自动化,那真是折腾死我了,从早期的monkeyrunner,到后来的robotium,再到最新的uiautomator,各有各的问题,总之性价比都不够高,不太适合我的使用场景。于是不愿意将研究结果投入实践,一直等待。

要说android的自动化,那真是折腾死我了,从早期的monkeyrunner,到后来的robotium,再到最新的uiautomator,各有各的问题,总之性价比都不够高,不太适合我的使用场景。于是不愿意将研究结果投入实践,一直等待。今年的适配问题越发突出,再不自动化,回归就该搞死人了。

于是最后研究比对instrumetation和uiautomator,终于确定了uiautomator方案,其实也是勉为其难,不过总算也是可以实现的。先准备好脚本,批量修改了所有布局文件,增加了contentDescription属性,少许的动态生成的布局,可以在开发配合下代码中增添,到时候提交到svn,以后再有新模块,都要求增加该属性,提交给测试增加自动化测试模块就可以了。

不过需要通过sdk的tools目录下的uiautomatorviewer.bat(管理员权限运行),查看界面元素,然后一一引用并进行操作,一是需要开发的大力配合,二是全都要一点点自己写,三是需要编译成jar包,push到手机上才能运行,也就是说只能通过日志暴力调试。

峰回路转,本来是有项目找方法测试C#的WPF,在搞定了这事以后,发现ranorex还可以测试ios和android程序,大喜之。于是试了试,发现可以和最传统的自动化测试工具一样进行对象识别,录制和回放,真是大爽呀。(事后经过测试,发现不适合我,因为ranorex和robotium一样,不可以跨应用,只能用回uiautomator解决方案)

整个步骤大致是:

1.      Instrument源代码,编译出一个可测版本(这个我回头单独写一章,如何进行instrument源码);

2.      创建一个android的测试项目;

3.      连接上手机,手机上会安装一个service;

4.      部署之前编译的可测试apk到手机上;

5.      录制,回放。

这个东西很好的一点是使用的instrument,也就是说他不是从一个孤零零的apk外围做的,而是直接从源码装hook,那要访问到程序的任何东西都可以了。这样就不担心google有一天对外关闭大门,instrumentation可是他自己的东西。

先说创建项目吧:

001.png

002.png

Module和advanced里面可以创建cmd控制台程序,也可以创建测试的模块库,还可以创建窗体程序,我就缺省选择了Testsuite

003.png

 

创建完以后就这个样子了。

不管三七二十一,直接开始录制:

004.png

005.png

这里的apk是将源码处理过的,其实deploy的时候勾选上instrument就可以了,不过我还是细细说说instrument的细节吧。参考:手把手教你ranorex_android源码instrument

006.png

 

提示JRE1.6 not found:

填写JRE的目录:

C:\xxx\android\Java\jdk1.6.0_03\jre

随口说一句:Jre就是java程序的运行环境;jdk是你做java开发的那套东西。

007.png

 

出错:

008.png

 

1.      检查apk是否混淆(obfuscated)

2.      必须使用api8以上版本,也就是sdk2.2以上版本;

3.      手机上是否安装了一个没有instrumented的版本

依次检查发现都没有问题,仔细一看,我倒,怎么手机连接是个叉叉,于是删除手机重新添加,于是就大功告成了。

所以别以为选择上了设备就可以,要随时留心检查一下设备状态是钩钩还是叉叉:

009.png

 

在deploy apk之前手机上会先启动一个服务:

010.png

  

这个样子就是安装成功了:

011.png

点开服务界面中的那个被测程序,会看到一个toast提示:ranorex connected

在ranorex上打开view spy

012.png

 

013.png

 

所有的对象都被识别出来了,要知道引用方式,只需找到对象然后点击一下track,爽吧。

然后在

014.png

 

对象库中(这个例子是TandroidRepository.cs)中可以看到引用到的界面元素,录制的操作在Recording1.cs(这个文件头部分强调: // DO NOT MODIFY THIS FILE! It is regenerated by the designer. ),不过没关系,还有Recording1.UserCode.cs,你的代码可以写在这里,把录制的代码拷贝来改巴改巴就可以用了。

好了,这个ranorex工程和android的例子,我都一起打包,提供给大家下载试试吧。

技术改变世界! --狂诗绝剑
目录
相关文章
|
3月前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
134 2
|
7天前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
1月前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
171 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
3月前
|
存储 前端开发 测试技术
Android kotlin MVVM 架构简单示例入门
Android kotlin MVVM 架构简单示例入门
54 1
|
7月前
|
Android开发 iOS开发
android自动化编译
android自动化编译
|
4月前
|
Java 测试技术 Android开发
Android性能测试——发现和定位内存泄露和卡顿
本文详细介绍了Android应用性能测试中的内存泄漏与卡顿问题及其解决方案。首先,文章描述了使用MAT工具定位内存泄漏的具体步骤,并通过实例展示了如何分析Histogram图表和Dominator Tree。接着,针对卡顿问题,文章探讨了其产生原因,并提供了多种测试方法,包括GPU呈现模式分析、FPS Meter软件测试、绘制圆点计数法及Android Studio自带的GPU监控功能。最后,文章给出了排查卡顿问题的四个方向,帮助开发者优化应用性能。
283 4
Android性能测试——发现和定位内存泄露和卡顿
|
4月前
|
测试技术 Shell Android开发
Android 性能测试初探 (六)
本节聊聊性能测试的最后一项- 流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试,但本系列文章都不去一一探讨了。
68 6
|
4月前
|
JavaScript 测试技术 Android开发
Android 性能测试初探 (四)
本文介绍了GPU在移动端性能测试中的重要性,并详细解释了过度绘制、帧率和帧方差的概念。针对GPU测试,文章列举了三项主要测试内容:界面过度绘制、屏幕滑动帧速率和平滑度。其中,过度绘制测试需遵循特定标准,而帧速率和平滑度测试则可通过软件或硬件方法实现。在软件测试中,使用Systrace插件和高速相机是两种常用手段。对于不同机型,帧率及帧方差的测试标准也需相应调整。
74 5
|
4月前
|
测试技术 Shell Android开发
Android 性能测试初探 (三)
本文承接《Android性能测试初探(二)》,深入探讨CPU与内存测试。介绍了移动端内存测试的重要性及其测试目标,并详细列举了不同状态下应用内存消耗情况的测试项目。此外,还提供了多种内存测试方法,包括使用`procrank`等工具的具体操作步骤。最后,文章也简要提及了CPU测试的相关内容,帮助读者更好地理解Android性能测试的关键要素。
64 5
|
4月前
|
测试技术 Shell 定位技术
Android 性能测试初探 (五)
聊聊大家不常关注的测试项- 功耗
66 3

热门文章

最新文章