下面简单介绍facebook-wda库--API的学习 import wda # debug模式,会在run运行时控制台生成消息 wda.DEBUG = False # False 关闭,True开启 # 如果连接本地地址失败,通常会运行1分钟才弹超时信息,在这可以设置超时10s就提示信息 wda.HTTP_TIMEOUT = 10.0 # 默认 60.0 seconds # 连接IOS测试机 c = wda.Client('http://localhost:8100') # 解锁屏幕并启动fa…
之前我们在终端试着调用过WDA API, 今天我们在看一个Python封装的api库 https://github.com/openatx/facebook-wda 安装方式(一): pip install --pre facebook-wda 安装方式(二): git clone https://github.com/openatx/facebook-wda.git cd facebook-wda/ python setup.py install 用Xcode开启WDA 会话, 然后再编写和执…
WebDriverAgent FaceBook推出的一款iOS移动测试框架, 支持真机和模拟器, 同时支持USB, 官方是这样介绍的: https://github.com/facebook/WebDriverAgent 下载: git clone https://github.com/facebook/WebDriverAgent.git 初始化脚本: 双击打开WebDriverAgent.xcodeproj 配置targets证书 配置WebDriverAgentRunner证书 这里会提示…
Fixture介绍 fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面.在编写测试函数的时候,可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将该函数的返回值作为测试函数的传入参数. fixture有明确的名字,在其他函数,模块,类或整个工程调用它时会被激活. fixture是基于模块来执行的,每个fixture的名字就可以触发一个fixture的函数,它自身也可以调用其他的fixture. 我们可以把fixture看做是资源,在你的测试用…
这里我们单独来看下关于如何生存测试报告 准备测试代码如下: #coding: utf- import pytest @pytest.fixture() def login(): print '输入账号.密码登录' def test_step_1(login): print '用例步骤1:登录之后其它动作111' def test_step_2(): #不需要登录 print '用例步骤2: 不需要登录, 操作222' def test_step_3(login): print '用例步骤3:登录…
使用assert语句进行断言 pytest允许使用标准的python assert语法,用来校验expectation and value是否一致 代码演示: def func(): def test_func(): assert func() == 执行结果: (wda_python) bash-3.2$ pytest -q test_assert.py F [%] ================================================================…
自动化测试框架 - pytest pytest是Python最流行的单元测试框架之一, 帮助更便捷的编写测试脚本, 并支持多种功能复杂的测试场景, 能用来做app测试也能用作函数测试 官方文档: https://docs.pytest.org/en/latest/ pytest具有以下优点: 允许使用assert进行断言 自动识别测试脚本.类.函数 可用于管理小型或者参数类型的测试数据或资源 兼容unittest和nose测试框架 支持Python2.7/Python3.4+ 丰富的插件支持,超…
前面我们已经安装好了WebdriverAgent, 现在可以用Facebook官方提供的API来进行一些操作 WDA API官方页面: https://github.com/facebook/WebDriverAgent/wiki/Queries 如果在终端运行的话可以使用curl来调用API,需要搭配json_header +  device_url + api组成,其中 json_header一般是: "Content-Type: application/json" device_…
iOS APP代码覆盖率统计 今年Q3季度领导给加了个任务要做前后端代码覆盖率统计, 鉴于对iOS代码代码比较熟就选择先从iOS端入手,折腾一整天后终于初步把流程跑通了记录如下 覆盖率监测的原理 Xcode中配置编译选项后, 编译后会为每个可执行文件生成对应的 .gcno 文件:之后在代码中调用覆盖率分发函数,会生成对应的 .gcda 文件. gcno:包含基本的块信息,以及代码行与块的映射关系: gcda:包含代码行执行的情况,以及覆盖率的信息归纳: 执行完测试后,提取goda并借助工具与gc…
继前一篇: Mac环境下安装Jenkins Jenkins安装好后, 我们试着创建一个iOS自动打包并发布的任务 iOS App构建必须在MAC上面使用xcode进行,所以我们要安装下xcode集成插件 在Jenkins首页选择系统管理 选择插件管理 搜索xcode, 安装Xcode integration插件 勾上安装后重启, 等待结束 如果出现安装进度条在最后一点卡很近, 手动重启下Jenkins然后到已安装插件中检查是否已经安装了 安装好插件后下面我们开始创建任务 首先点击新建任务 输出任…
安装Jenkins 首先检查是否有Jenkins依赖的java环境 java -version 出现java version "1.8.xx"说明已经安装了java Jackeys-MacBook-Pro:~ jackey$ java -version java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) -Bit Server…
此篇介绍如何安装WebDriverAgent,下一篇介绍facebook-wda库的安装使用以及自动化脚本的开发. 前言: 对于iOS的应用的测试,如果不需要用到图像识别,推荐使用这个项目facebook-wda 目录: 一.前提准备条件 二.证书配置 三.运行与测试 四.端口转发 五.扩展:用命令启动webDriverAgent(推荐) 六.附:感谢文章 一.前提准备条件    返回目录 环境配置 MacOs Xcode(建议更新为最新版本) npm carthage 安装npm和Cartha…
1.WDA介绍 WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备.你可以启动.杀死应用,点击.滚动视图,或者确定页面展示是否正确. facebook的WDA在iOS 10 时代苹果已经废弃了,目前依然在更新的是Appium官方的WDA,官方链接如下:https://github.com/appium/WebDriverAgent,安装配置和facebook类似,配置好签名证书即可,不需要修改代码,也…
[本文出自天外归云的博客园] 原理 对于iOS自动化操作,主要靠WebDriverAgent来完成.在Mac电脑上连接真机iPhone,运行WebDriverAgentRunner会在Mac端启动WDA服务器,并在手机iPhone端安装一个WebDriverAgentRunner应用.我们通过编写脚本来与WDA服务器通信,告诉WDA服务器我们想要如何操作iPhone手机,WDA服务器与安装在手机iPhone端的WebDriverAgentRunner应用通信并通过该app发送模拟指令来实现操作i…
     一.前言 IOS的App自动化测试与Android的一样,也可以用appium来进行.但是IOS自动化依赖苹果的osx系统.Xcode构建等,且封闭的系统需要苹果开发者账号才可以驱动真机.Appium的环境配置有点麻烦,可能大部分时间都在处理各种稀奇古怪的报错,甚至于需要重装系统. 本文旨在记录配置过程(MacOS系统的Python和Java环境配置也有记录),给同道中人提供参考,让大家少走弯路. 二.环境依赖 1.环境依赖项 Xcode Git homebrew npm.nodejs…
Appium进行自动化测试有两个好处: 1. Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用. 2. Appium支持Selenium WebDriver支持的所有语言,如java.Object-C.JavaScript.Php.Python.Ruby.C#.Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api.Appium支持任何一种测试框架.如果只使用Apple的UIAutomation,我们只能用ja…
macaca-java for ios 自动化环境搭建 基础原理解析:https://testerhome.com/topics/6608 一.环境搭建 1.安装eclipse; -----Java开发调试工具 下载地址:https://www.eclipse.org/downloads/ PS:java调试工具,可根据自身情况选择不下载. 2.安装node.js 中文网地址:http://nodejs.cn/ node.js安装方式一: (1)安装brew /usr/bin/ruby -e "…
前言 最近在做IOS自动化测试,IOS的Appium环境都配置OK,Demo脚本运行没有问题,多开执行没有问题,IOS安卓统一平台调度集成没有问题,可以进行自动化测试.课时真正执行用例时发现个严重问题:执行速度过慢,慢的像中国男足,Appium的执行log满屏刷,找元素像男国足球场一样骚,一个像无头苍蝇满场跑,一个有模有样的一轮又一轮的查找,就是命中不了.很是蛋疼,一直疼了好几天,都有放弃的念头了. 调查 Xcode9 SDK不再支持snapshot功能了,没有snapshot功能就无法获取pa…
Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发 直接入正题: Screen Shot 2015-09-18 at 16.56.20.png Mac上安装Jekins jekins下载地址:http://jenkins-ci.org/ ,选择Mac 直接安装.安装成功后.访问http://localhost 是否可正常访问. 安装Jekins相关插件 证书管理插件1.https://wiki.jenkins-ci.org/display/JENKINS/Keychains+an…
http://www.cocoachina.com/ios/20160624/16811.html 很久以前就看了很多关于iOS自动打包ipa的文章, 看着感觉很简单, 但是因为一直没有AppleDeveloper账号可以给我用, 到了真的要搞自动打包的时候, 才发现到处都是坑. 基本命令 xcedebuild: 生成Archive.导出ipa, 还有其它功能… xcrun: 把*.app打包成ipa, 还有其它功能… 基本使用 一. xcedebuild打包Archive文件 1 xcedeb…
最近在使用jenkins 实现ios自动化打包发布蒲公英过程实践遇到了一些坑,特意记录下来方便有需要的人. 进入正题: 一.安装Jenkins 1.Mac上安装Jenkins 遇到到坑 因为 Jenkins 的pkg安装包默认安装位置为shared文件夹,后续会遇到权限问题,所以放弃pkg安装.(说明:也许是安装时选择了本机所有用户可用的原因) 如果已经使用pkg文件方式安装了,卸载方法:找到该文件 /Library/Application Support/Jenkins/Uninstall.c…
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - 部署篇 Longhorn 云原生容器分布式存储 - 券和节点 Longhorn 云原生容器分布式存储 - K8S 资源配置示例 Longhorn 云原生容器分布式存储 - 监控(Prometheus) Longhorn 云原生容器分布式存储 - 备份与恢复 Longhorn 云原生容器分布式存储 -…
iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView beginAnimations:nil context:nil]; //设置动画时长 [UIView setAnimationDuration:2.0]; self.headImageView.bounds = rect; // commitAnimations,将beginAnimation之后的所…
原文 三种Python下载url并保存文件的代码 利用程序自己编写下载文件挺有意思的. Python中最流行的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法requests. 来看看三种方法是如何来下载zip文件的: import urllib import urllib2 import requests url = 'http://www.blog.pythonlibrary.org/wp-c…
一.python介绍以及发展史  1.1 python的介绍: 简单点来说吧,python这玩意儿是一个叫做Guido van Rossum的程序猿在1989年的圣诞打发时间而决心去开发的一个脚本编程语言.它之前的名字是以abc语言的一种继承.之所以叫做python,那是因为这个伟大的程序员Guido van Rossum是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python‘s Flying Circus)的爱好者.  1.2 为毛要学习python: 学习python首先要去了解…
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取 一.实验环境: Python2.7.10.pycharm.VM虚拟机.CentOS6.3.mysql 二.MySQLdb模块: MySQLdb模式是Python中专门连接MySQL数据库的模块,另外Python开发环境的搭…
目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 os 模块 shutil 模块- High-level file operations 小结 相关文章列表 前言 在上篇文章 中,全面讲解了 python 3 中 的面向对象,今天我会继续探险,去掌握 python 3 中的文件操作, let's go 让我们出发吧! 文件 什么是文件? 一谈到文件,…
一:学习内容 python编码转换 python乱码原因深入解析 二:python编码转换 1. Python内部字符串一般都是Unicode编码,代码中字符串的默认编码与代码文件本身的编码是一致的. 2. Python编码转换通常是要以unicode作为中间编码进行转换的,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码. 3. Python编码转换实例:gbk存储的字符—>decode('gbk')—>unicode—>e…
原始地址:XMPPFrameWork IOS 开发(三) XMPP中常用对象们: XMPPStream:xmpp基础服务类 XMPPRoster:好友列表类 XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作类 XMPPvCardCoreDataStorage:好友名片(昵称,签名,性别,年龄等信息)在core data中的操作类 XMPPvCardTemp:好友名片实体类,从数据库里取出来的都是它 xmppvCardAvatarModule:好…
第三篇 Python基础预习 Part 1 变量 一.什么是变量? 二.为什么要有变量? 三.定义变量 四.变量的组成 五.变量名的命名规范 六.变量名的两种风格 Part 2 常量 Part 3 Python变量内存管理(面试经常问) 一.变量存放位置 二.Python垃圾回收机制 成语概括垃圾回收机制:退位让贤 引用计数 三.小整数池 Part 4 变量的三个特征 一.打印 二.判断变量值是否相等 三.判断变量id是否相等 Part 5 花式赋值 一.链式赋值 二.交叉赋值 Part 6 注…