app自动测试-微信(iOS)-web-1
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的更多相关文章
- 手机App安全性测试初探
目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...
- 如何用Azure Web App Services接入微信公众号
注:本文提到的代码示例下载地址>如何用Azure Web App Services接入微信公众号 如何用Azure Web App Services接入微信公众号 简介 此示例演示如何创建Azu ...
- iOS APP 安全测试
1.ipa包加壳 首先,我们可以通过iTunes 下载 AppStore的ipa文件(苹果 把开发者上传的ipa包 进行了加壳再放到AppStore中),所以我们从AppStore下载的ipa都是加壳 ...
- APP端测试与web端测试的区别
想要知道APP端测试与web端测试的区别 ,那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端.那么在系统测试测试的时候就 ...
- web app升级—带进度条的App自动更新
带进度条的App自动更新,效果如下图所示: 技术:vue.vant-ui.5+ 封装独立组件AppProgress.vue: <template> <div> <va ...
- chrome正受到自动测试软件的控制-----web自动化测试如何去掉这段提示
本文为原创文章 在web自动化测试的时候,特别是在用chrome浏览器的时候经常会出现 “chrome正受到自动测试软件的控制” 这样的一句提示, 这是因为安装chrome浏览器的时候没有设置允许调 ...
- 合肥 专业做APP(安卓,ios) 微信公共平台
合肥 专业做APP(安卓,ios) 微信公共平台 电话:15715696592
- Web APP自动更新
我们的手机软件每天都要经营,经常需要更新,比如程序的Bug,好的功能,好的洁面... ... 这就需要我们的用户打开web app时候自动更新客户端程序,而不是再去应用程序商店从新下载.今天的笔记就是 ...
- 阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页
问题:ios封装完之后,点击里边的按钮会跳转到网页上 ——小卡遇到这个问题就是这样解决的↓↓↓ 解决方法:建议将代码放到</head>标签前,当然,另外存为一个js 文件引用也是可以的呦~ ...
随机推荐
- Python02 变量
变量 因为Python是弱变量类型编程语言,所以变量赋值不需要类型声明. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 变量 ...
- python linecache模块读取文件用法详解
linecache模块允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行. linecache.getlines(filename) 从名为filename的文件中得到 ...
- 第28题:leetcode101:Symmetric Tree对称的二叉树
给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,nul ...
- k8s使用自定义证书将客户端认证接入到API Server
自定义证书使用kubectl认证接入API Serverkubeconfig是API Server的客户端连入API Server时使用的认证格式的客户端配置文件.使用kubectl config v ...
- goaccess 安装
今天尝试搭建goaccess,用于分析access.log文件,但安装并不顺利,小记一下自己遇到的问题及解决方法 系统环境:CentOS release 6.9 一.参照官网教程进行搭建 $ wget ...
- Window_Bat_Scripts—检测特定网段未使用的IP地址
1.1 脚本名称 Check_IP_Not_Use.bat 1.2 脚本代码 @Echo off set /p input_number=请输入网络位(192.168.1.): IF EX ...
- Linux时区修改
Linux修改时区的正确方法 CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 [root@centos7 ~]# ...
- L2TP用户添加和删除、搜索脚本
#!/bin/bash #author Template . /etc/init.d/functions DATE_TIME=$(date +%F-%T) FILE_PATH='/etc/ppp/ch ...
- JVM 内存分配和回收策略
对象的内存分配,主要是在java堆上分配(有可能经过JIT编译后被拆为标量类型并间接地在栈上分配),如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配.少数情况下也是直接分配到老年代,分配规则不 ...
- wusir 面试题答案在老男孩的视频里
注意:你问答案在哪里?答案在视频里了,就是不给你写. 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C+ ...