1.移动端自动化测试工具
下载appium直接安装
appium(继承自selenium), Airtest(网易), RF(robot framework 关键字驱动中的一种)
2.appium自动化原理
web自动化: 打开浏览器 打开被测网址URL 元素定位 操作(输入,点击,切换,等待....)
test_xx.py中编写自动化代码脚本(存储在本地电脑)
被测系统/项目 在哪里进行自动化测试? 浏览器(本地电脑)
自动化脚本和项目 在同一个位置进行存储 和 执行.
app自动化: 打开app 元素定位 操作(输入 点击 滑屏 按键 ....)
test_xx.py中编写自动化代码脚本(存储在本地电脑)
被测app软件 在哪里进行自动化测试? 移动端设备
自动化脚本 和 被测app软件 不在同一位置, 怎么执行脚本 打开移动端设备中的app程序进行测试?
在PC端编写 app自动化测试脚本, 通过appium指令服务器转发给SDK环境, 再通过SDK操作移动终端设备.

3.appium组件详解
3.1 Host: 0.0.0.0(appium是指令服务器, 用于转发指令) port: 4723(appium默认端口)
127.0.0.1 还回/回还地址 用于接收消息
3.2 点击start server


3.3 Inspector session

4.appium自动化配置
Desired Capabilities 自动化配置
{
"platformName": "Android", # 操作系统
"platformVersion": "6.0.1", # 系统版本
"deviceName": "127.0.0.1:7555", # 设备名称
"appPackage": "com.tencent.mobileqq", # app程序包名
"appActivity": ".activity.SplashActivity", # app程序主界面(启动界面)
"noReset": "true",# 不重置
"unicodeKeyboard":"true"# 允许输入中文
}
1.Select Elements 选中元素
2.Swipe 划屏

3.Tap 透视点击 通过appium程序直接点击 app

back 返回
Refresh source 刷新资源 只要appium界面中的显示与设备中的程序界面显示不一致, 需要先刷新 后操作
6.Start recording 开始录制

- 通过某种定位方式 搜索元素标签对象

8.Quit session &close inpector 退出并关闭

5.appium录制脚本
点击start recording 开始录制
录制过程为, 选中元素标签, 在弹出标签属性后, 在右侧进行 点击(Tap), 输入(Send_keys) 清空(Clear)等操作
录制的脚本, 可以选择 不同语言, 然后将代码 copy即可.
appium中常用的元素定位方式:
1.accessibility_id 就是元素属性之一
2.id
3.xpath
4.name
录制产生的脚本如何在pycharm中运行:
1.pip install appium-python-client==1.3.0
2.导包 from appium import webdriver
3.添加自动化配置信息
des = {
"platformName": "Android", # 操作系统
"platformVersion": "6.0.1", # 系统版本
"deviceName": "127.0.0.1:7555", # 设备名称
"appPackage": "com.tencent.mobileqq", # app程序包名
"appActivity": ".activity.SplashActivity", # app程序主界面(启动界面)
"noReset": "true",# 不重置
"unicodeKeyboard":"true"# 允许输入中文
}
4.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", des)
问题: 如果是比较成熟的商业app软件, 它会不断的产生各种安全验证
遇到验证码 文字,图片,点击,划屏 如何处理?
1.cookie 缓存
2.设置万能验证码
3.取消验证码(执行自动化时)
4.opencv 智能识别
1.免费 需要不断的进行训练, 本质是训练一个人工智能 程序. 要求很高
- 收费, 每次遇到验证码, 通过调用第三方接口的方式 来实现验证码的处理
自动化(web自动化, app自动化)
web自动化, 主要是为了解决回归测试阶段, 需要重复执行之前版本的所有测试用例; 替代人工进行巡检
web自动化并不能替代 功能测试; web自动化是按照编写好的程序来执行的, 不可能发现 程序之外的其它缺陷.
app自动化也是相同的. 在app兼容性测试中 效果比较直白. 也不能替代功能测试.
90%的TestCase都通过自动化的方式来执行. 原因有两个.
1.技能能力达不到 2.成本问题
web自动化/app自动化测试 都是在功能测试之后. 功能测试未完成, 意味版本不够稳定.
UI自动化前提:
1.项目周期比较长
2.项目比较稳定
3.充足的资源(人力, 物力, 时间)
UI自动化并不能发现更多的缺陷. 只是节省了人 物 时间 成本.
1.筛选人员能力, 作为对招聘人员考核的必需指标之一. 代码能力能够说明 测试人员的逻辑能力.
2.可以作为储备. 更期望测试人员能够主动通过技术手段 提升测试效率, 降低成本, 保证软件质量.
接口自动化 能够帮助测试人员, 发现更多的缺陷, 而且效率更高. 天生就适合做自动化.
软件测试: 尽可能早的发现软件中隐藏的缺陷,并确保其得以修复.
单元测试 纯白盒测试 开发自测
集成测试 黑盒为主, 白盒为辅 接口测试
系统测试 纯黑盒 功能测试
验收测试 用户验收, 第三方机构
版权归原作者 中国程序员-AH 所有, 如有侵权,请联系我们删除。