App自动化实战(1)

最近要从0开始将手机银行的App自动化,记录这个过程.


工具选型

首先否决掉录制脚本的方法.我觉得使用录制脚本的都是假自动化.当时回放方便,但是长远来看维护性太差,稍微改动下UI可能就要全部重新录制.那么只剩下一个选择:代码实现.
比较了几款主流App自动化框架后,最后决定选择Appium.
主要是因为Appium跨平台, ,基于WebDriver,可同时用于iOS和安卓.而且不需要重新编译App,可以用Python,Ruby,Java等多种语言实现.


目标

  1. 首先,不管什么架构,数据模型之类,简单粗暴地把转账的功能跑通再说.
  2. 提出公共模块,例如登录.
  3. 将数据和业务代码分离.
  4. 使用关键字驱动等重构.

第一天

  1. 下载ios源码,在本机试运行,成功.
  2. 发现每次模拟器启动都会出线四个欢迎页面, 在AppDelegate.m找到对应代码,屏蔽之 :)
  3. 操作流程:
    • 启动App,有几个选择框:是否允许使用当前位置,是否允许发送通知,是否允许使用网络
    • 进入主界面,点击"我的账户"按钮
    • 弹出登录框,输入手机,密码,登陆成功(这里需要用万能验证码)
    • 点击"我的账户"
    • 选择银行卡
    • 点击"转账"
    • 输入"转账金额",输入"收款人户名",输入"收款账号",点击"下一步"
    • 点击"确认转账"
    • 输入"取款密码"
    • 点击"完成",回到主菜单界面.

问题记录

  1. 登录时,用户名可以直接send_keys输入,但是密码框这样输入无效.因为密码框控件是使用第三方的安全键盘,只能通过xpath找到对应的键位一个一个点击.
  2. 模拟器每次登录时会有输入验证码的要求,找到开发,对我的测试账号加入万能验证码.
  3. 真机运行报错:[XCUITest] The 'idevice_id' program is not installed. If you are running a real device test it is necessary. Install with 'brew install libimobiledevice --HEAD'按提示下载对应包就行了.
  4. 真机运行继续报错:[XCUITest] Error: Could not initialize ios-deploy make sure it is installed (npm install -g ios-deploy) and works on your system. 继续按提示下载.

你可能感兴趣的:(App自动化实战(1))