随笔分类 -  移动端App自动化测试

python+Appium移动端自动化测试介绍
摘要:雪球案例: 1)打开应用 2)点击“交易” 3)点击“A股开户” 4)再输入用户名和密码 5)点击“立即开户” 6)退出应用 代码如下: 要记住切换上下文!记住! 运行报错:原因是打开开户页面的时候类似于在web页面重新又打开了一个新的页面,因此没有找到当前窗口 2.一般会遇到的坑 当有多个浏览器需 阅读全文
posted @ 2020-05-11 14:10 zhaikunkun 阅读(345) 评论(0) 推荐(0)
摘要:1.混合页面测试 原生页面里面嵌入h5页面 需求股票 更多券商这些都是原生组件 如何判断页面是webview呢? 1)断网查看 2)看加载条 3)看顶部是否有关闭按钮 4)下拉刷新页面是否刷新 5)下拉刷新的时候是否有网页提供方 6)用工具查看chrome://inspect 原生页面断网后会有缓存 阅读全文
posted @ 2020-05-07 18:08 zhaikunkun 阅读(211) 评论(0) 推荐(0)
摘要:android纯 web页面测试 1. 前端页面主要有以下3种类型: 原生应用 混合应用 web应用 比如:m.baidu.com 百度m站,一般每个app都会有一个m站,这个页面和浏览器上打开的页面非常类似 M站和web都是一样的 都是用的selenium那一套去定位 原生 native app: 阅读全文
posted @ 2020-05-06 09:32 zhaikunkun 阅读(287) 评论(0) 推荐(0)
摘要:1.参数化应用场景 登录、搜索都可以归为一类,进行参数化,以雪球app为例进行实战: 打开雪球应用 点击搜索框 输入搜索词’京东’或者’小米“ 点击第一个搜索结果 判断股票价格 找到对应的股票代码下的股票价格元素(股票代码是唯一的,容易定位) 从一个元素的查找中找到共性:知道股票代码就可以定位到该股 阅读全文
posted @ 2020-04-20 21:13 zhaikunkun 阅读(518) 评论(0) 推荐(0)
摘要:1.get attribute原理分析 注意⚠️ attribute是一个元素的方法,只有通过元素才能调到,是元素的一些属性 appium源码: https://github.com/appium 可以看出appium是通过多个项目组成的,ios的driver,android的driver 查询进程 阅读全文
posted @ 2020-04-20 21:05 zhaikunkun 阅读(263) 评论(0) 推荐(0)
摘要:1.toast提示 在登录完成后会有一个登录成功的toast提示,一闪而过,只是给用户一个简单的提醒,又不过于强硬,不像是alert toast注意⚠️是系统发出来的,而不是app发出来的; 虽然一般不提倡用css进行定位,但是toast比较特殊,可以使用这种方式来定位 测试有apk在这里下载 ap 阅读全文
posted @ 2020-04-20 20:22 zhaikunkun 阅读(532) 评论(0) 推荐(0)
摘要:1.测试设备 adb shell start -n 要启动的页面:这样可以把你要启动的页面启动起来 start session是创建一个新的session 使用应用宝官网下载到电脑 安装应用:adb install -r xxx.apk 或者通过拖拽到模拟器中 多个模拟器或手机安装应用,使用以下命令 阅读全文
posted @ 2020-04-20 18:42 zhaikunkun 阅读(735) 评论(0) 推荐(0)
摘要:1.appium的设计理念 手机端、appium server端、程序脚本 2.appium引擎列表 3.appium生态工具 adb是anjoin debug bridge 安卓自带的工具,非常重要 重点掌握!!! from appium import webdriver就是导入了appium-p 阅读全文
posted @ 2020-04-20 18:33 zhaikunkun 阅读(154) 评论(0) 推荐(0)
摘要:一般产品的迭代流程如下: 而真实的后端服务 测试面临的问题 为什么要使用UI自动化,而不是接口及代码层面的自动化测试?因为前端后端测试都是需要的 appiumserver可以部署在任何地方 只要可以访问到就可以了 可以部署到服务器上或者自己电脑上 阅读全文
posted @ 2020-04-20 14:01 zhaikunkun 阅读(107) 评论(0) 推荐(0)
摘要:等待类型: 全局隐式等待:每隔0.5秒查找一次,在服务端的等待,在程序运行周期内生效 显式等待:在客户端的等待,只是在写了等待语句的地方才生效 隐式等待只能校验你的元素是否出现,但是无法校验可点击等属性 查看WebDriver源码可以看到 后面两个参数可以默认不填,poll_frequency=PO 阅读全文
posted @ 2020-04-20 13:53 zhaikunkun 阅读(361) 评论(0) 推荐(0)
摘要:1.使用xpath定位的时候 比如定位阿里巴巴的香港股票 lacator = (MobileBy.XPATH, "//*[@text=09988]/../../..//*[@resource-id='com.xueqiu.android:id/current_price']") 其中,可以讲0998 阅读全文
posted @ 2020-04-20 13:36 zhaikunkun 阅读(388) 评论(0) 推荐(0)
摘要:1.xpath定位进阶 层级定位 父节点定位子节点 子节点定位父节点 子节点定位兄弟节点 爷爷节点定位孙子节点 具体参考该网站: https://www.w3school.com.cn/xpath/index.asp 1.打开雪球app2.点击搜索输入框3.想搜索框中输入“aliababa”4.在搜 阅读全文
posted @ 2020-04-20 13:29 zhaikunkun 阅读(402) 评论(0) 推荐(0)
摘要:1. TouchAction的用法 参考官方文档: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/touch-actions.md TouchAction The available event 阅读全文
posted @ 2020-04-20 13:16 zhaikunkun 阅读(457) 评论(0) 推荐(0)
摘要:1.元素的常用方法 1)点击:element.click() 2)输入操作:element.send_keys("appium") 3)设置元素的值:element.set_value("appium") 4)清除操作:element.clear() 5)是否可见:element.is_displa 阅读全文
posted @ 2020-04-20 13:06 zhaikunkun 阅读(271) 评论(0) 推荐(0)
摘要:1.对basepage模块的改造 1)封装查找元素方法 def find(self, by, locator=None): # *by意思是传递多个位置参数,如果传递的是一个元组的话,就用前面的,locator注意默认等于None return self.driver.find_elements(* 阅读全文
posted @ 2020-04-19 14:14 zhaikunkun 阅读(438) 评论(0) 推荐(0)
摘要:1.PageObject设计模式 传统测试用例的问题 1)无法适应UI变化,UI变化会导致大量的case需要修改 2)大量的样板代码driver find click 3)无法清晰的表达业务用例场景 PageObject模式原则 方法意义 用公用方法代表UI所提供的服务 方法应该返回其他的PageO 阅读全文
posted @ 2020-04-19 13:25 zhaikunkun 阅读(431) 评论(0) 推荐(0)
摘要:1.android/ios基础知识 1)线性结构:两种结构;水平的和竖直的,android开发中用的最多的一种布局结构 2)相对布局:比如通讯录,点击通讯录有联系人,联系人的头像和名字,首先要确定一个布局的位置,再确定第二个布局的位置、间距和大小 3)帧布局:也是用的最多的,先设置layout最底层 阅读全文
posted @ 2020-04-14 19:53 zhaikunkun 阅读(462) 评论(0) 推荐(0)
摘要:1.测试用例的重要部分 1)导入依赖 from appium import webdriver 2)capabilities设置 3)初始化driver: python webdriver.remote 4)隐式等待,增强用例的稳定性 5)元素定位与操作 find+action 6)断言assert 阅读全文
posted @ 2020-04-14 19:42 zhaikunkun 阅读(206) 评论(0) 推荐(0)
摘要:1.daemon not running; starting now at tcp:5037 环境:macos系统问题:打开网易MUMU模拟器,终端输入adb devices,提示如下ZBMAC-C02N43Mfc:~ zhaitiantian$ adb devices daemon not run 阅读全文
posted @ 2020-04-13 21:55 zhaikunkun 阅读(1030) 评论(0) 推荐(0)
摘要:1.Android自动化前提依赖 1)genimotion和sdk自带模拟器可以创建不同版本和不同镜像 2)网易mumu只针对6.0版本的改造 2.Apppium Desktop主要功能 UI分析: 有哪些界面,有哪些层级结构 录制用例: 可以生成不同语言的脚本 元素查找测试 Attach已有的se 阅读全文
posted @ 2020-04-13 11:21 zhaikunkun 阅读(279) 评论(0) 推荐(0)