appium 是一个用于app自动测试的工具。目前支持测试iOS, Android, Windows上的app。(github: https://github.com/appium/appium)

其工作方式:在测试服务器上(可以是开发者的PC)安装appium server,然后测试代码通过使用 appium client和appium server通信,而appium server通过已安装的驱动控制已经连接在server上的设备(手机或PC)。

本篇从安装appium开始,到写一个简单的测试程序操控微信web页面,作为一个简单的自动测试样例。

本篇用的机器为mac OS,但除了安装appium server及驱动等在不同的操作系统上需安装不同版本,测试方法及测试代码并无不同。

1. 下载和安装appium (server)

server有NPM版和desktop版,这里下载的desktop版本。详见 官方快速入门文档(https://github.com/appium/appium/blob/master/docs/en/about-appium/getting-started.md) 。

启动桌面版启动后会进入控制台界面,如图:

这里仅测试iOS设备,所以仅需要iOS驱动。据iOS驱动主页上所描述,appium1.6以上已经带有iOS驱动。

2. 安装 WebDriverAgent (https://github.com/appium/WebDriverAgent)

(1) 安装Carthage

拉取源代码(https://github.com/Carthage/Carthage), 进入源代码目录,执行 make install,编译成功后,编译生成的 carthage 会自动copy至 /usr/local/bin/

(2) 安装npm,略过。

(3) 拉取WebDriverAgent,执行 ./Scripts/bootstrap.sh。

3. debug 微信里的webview (WebDriverAgent 文档: https://github.com/facebook/WebDriverAgent/wiki/Starting-WebDriverAgent)

(1) xcode打开 WebDriverAgent.xcodeproj,在xcode中执行菜单 Product -> Test。

启动成功后,可以xcode的output的日志中看到:

(2) 上面output中的 ServerURLHere->http://10.10.10.247:0<-ServerURLHere是inspector的URL,把该URL贴入浏览器执行。

但是端口0是有问题的,无法访问的。遇到这样的情况,可以在运行配置里,把USE_PORT的配置去除,如果没有该配置项,则会使用默认端口8100:

然后再次运行,就出现以下日志了:

ServerURLHere->http://10.10.10.247:8100<-ServerURLHere

访问  http://10.10.10.247:8100,失败,此时安装iOS的代理试试:

brew install libimobiledevice
iproxy 8100 8100

http://localhost:8100 访问成功的话,可以看到状态信息:

(3) inspector界面 http://localhost:8100/inspector

可以看到手机上此时的webview的截屏。

app自动测试-微信(iOS)-web-1的更多相关文章

  1. 手机App安全性测试初探

    目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...

  2. 如何用Azure Web App Services接入微信公众号

    注:本文提到的代码示例下载地址>如何用Azure Web App Services接入微信公众号 如何用Azure Web App Services接入微信公众号 简介 此示例演示如何创建Azu ...

  3. iOS APP 安全测试

    1.ipa包加壳 首先,我们可以通过iTunes 下载 AppStore的ipa文件(苹果 把开发者上传的ipa包 进行了加壳再放到AppStore中),所以我们从AppStore下载的ipa都是加壳 ...

  4. APP端测试与web端测试的区别

    想要知道APP端测试与web端测试的区别 ,那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端.那么在系统测试测试的时候就 ...

  5. web app升级—带进度条的App自动更新

    带进度条的App自动更新,效果如下图所示:   技术:vue.vant-ui.5+ 封装独立组件AppProgress.vue: <template> <div> <va ...

  6. chrome正受到自动测试软件的控制-----web自动化测试如何去掉这段提示

    本文为原创文章 在web自动化测试的时候,特别是在用chrome浏览器的时候经常会出现 “chrome正受到自动测试软件的控制”  这样的一句提示, 这是因为安装chrome浏览器的时候没有设置允许调 ...

  7. 合肥 专业做APP(安卓,ios) 微信公共平台

    合肥 专业做APP(安卓,ios) 微信公共平台 电话:15715696592

  8. Web APP自动更新

    我们的手机软件每天都要经营,经常需要更新,比如程序的Bug,好的功能,好的洁面... ... 这就需要我们的用户打开web app时候自动更新客户端程序,而不是再去应用程序商店从新下载.今天的笔记就是 ...

  9. 阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页

    问题:ios封装完之后,点击里边的按钮会跳转到网页上 ——小卡遇到这个问题就是这样解决的↓↓↓ 解决方法:建议将代码放到</head>标签前,当然,另外存为一个js 文件引用也是可以的呦~ ...

随机推荐

  1. Linux内核参数min_free_kbytes

    1. min_free_kbytes 先看官方解释: This is used to force the Linux VM to keep a minimum number of kilobytes ...

  2. CentOS6.5-DHCP配置

    原文链接主机配置: 1.查看主机名:hostname 2.修改主机名:vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=master.303kfy.n ...

  3. 51nod——2476 小b和序列(预处理 思维)

    对于每一个元素,预处理出它作为最小值,两边可以作用到的最大位置.比如下标∈[0,8]的这个数组:1 8 6 2 5 4 3 8 7,1可以作用到所有区间,2可以作用到区间[1,8],第一个8可以作用到 ...

  4. Centos7多内核情况下修改默认启动内核方法

    1.1  进入grub.cfg配置文件存放目录/boot/grub2/并备份grub.cfg配置文件 [root@linux-node1 ~]# cd /boot/grub2/ [root@linux ...

  5. 将xml转为array 输出xml字符

    //将xml转为array private function fromXml($xml){ // 禁止引用外部xml实体 libxml_disable_entity_loader(true); ret ...

  6. javascript oo实现

    很久很久以前,我还是个phper,第一次接触javascript觉得好神奇.跟传统的oo类概念差别很大.记得刚毕业面试,如何在javascript里面实现class一直是很热门的面试题,当前面试百度就 ...

  7. spark和MR比较

    MapReduce: 分布式的计算框架 缺点:执行速度慢 IO瓶颈 ==> 磁盘IO 网络IO shuffle机制:数据需要输出到磁盘,而且每次shuffle都需要进行排序操作 框架的机制: 只 ...

  8. python 爬虫豆瓣top250

    网页api:https://movie.douban.com/top250?start=0&filter= 用到的模块:urllib,re,csv 捣鼓一上午终于好了,有些小问题 (top21 ...

  9. 动态规划:HDU1864-最大报销额(处理带小数的dp问题)

    最大报销额 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Descriptio ...

  10. 处理IE6下PNG图片透明背景问题

    由于历史原因,IE较早的版本不支持PNG透明 可以支持GIF等的透明 由于png图片相对较小,所以很多网站还是青睐于PNG图片 最近就遇到这种情况,使用js和css滤镜来实现的与大家分享一下下: 首先 ...