appium自动化测试(五)
1. 页面封装——理性判断
2. basepage——定位表达式的判断——要加上移动端的,加上上下左右滑动封装、toast可以封装、webview切换操作
3. 页面当中,所有元素定位——更换——移动端的定位表达式
4. 页面当中,函数名字不需要改——函数的实现修改为移动端的用法
修改和新增功能;
5. 测试数据适当修正
6. 优化启动会话——appium——配置数据太多了,每一个测试文件都必须经历这个步骤
7. 测试用例——步骤修改——验证的条件修改
1. 是否有欢迎页面,如果有就要一步步滑下去进入首页
2. 登录用例:是否需要记住用户状态
1) 记住—要把登录成功的用例放到最后
2) 不记住—登录失败的用例
3. app自动化—有一堆配置信息—再启动
toast信息—配置信息要变:UiAutomator2
其它的用例—用默认的就好
新增一些别的配置
BaseDriver—专门来处理启动信息
—yaml来存储配置数据(设备信息+服务信息)
—通过参数来判断是否需要修改automationName
登录用例:
1. 登录成功—默认的driver
2. 密码错误—默认的driver
3. 用户名未注册—需要加上toast处理—配置中要加上UiAutomator2
不同的测试用例—要使用不同的初始化内容—setup有区别?
单元测试—在一个测试类当中,setup所有测试用例通过
pytest—conftest.py—定义各种setup、teardown,在测试用例当中,是可以每个测试用例指定调用哪一个fixture
0. basepage:新增了滑动、toast处理
1. yaml来管理配置数据
2. basedriver—用来启动driver会话,并且处理了是否重置,是否换automationName
3. 测试用例:
conftest—fixture功能
default-fixture
toast_fixture
login_fixture:不记住用户的状态—多次运行脚本
所有fixture中:是否要处理欢迎页面—activity的名字
test_login 使用了login_fixture
一. YAML
YAML是一种简洁的非标记语言
YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表达更加简洁
基本规则:
1. 大小写敏感
2. 使用缩进表示层级关系
3. 禁止使用tab缩进,只能使用空格键
4. 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级
5. 使用#表示注释
6. 字符串可以不用引号标注
三种数据结构:
1. 字典
使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map
#Yaml 方式一 (注意冒号后的空格)
platformName: Android
platformVersion: 5.1
#Yaml 方式二
{platformName: Android, platformVersion: 5.1}
2. 列表
使用连字符(-)表示,注意-后的空格
- hello
- world
#方式二
[hello, world, 12, 13]
3. scalar 纯量
二. python库
1. PyYAML
2. ruamel.yaml
PyYAML安装:
pip命令:pip install PyYaml
读取yaml文件的数据,并转换成python对象
1. 打开yaml文件
2. 使用yaml的load()函数
注意数字类型的转成字典是数字类型,如果需要字符串,则用str转换成字符串,如platformVersion的值被转成了float类型(5.1),需要str(5.1) 才是"5.1"
示例代码:
fs = open(os.path.join(caps_dir, "caps.yaml"))
datas = yaml.load(fs)
appium自动化测试(五)的更多相关文章
- Appium+python自动化(四十二)-Appium自动化测试框架综合实践- 寿终正寝完结篇(超详解)
1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告, ...
- 全网最新方法:Win10下如何安装和搭建appium自动化测试环境
为了方便大家,下面是本人安装和搭建appium所需要的软件,自取. 链接:https://pan.baidu.com/s/1wl5Xnos4BmnSZsBRd6B5YA#list/path=%2F ...
- 全网最全最细的appium自动化测试环境搭建教程以及appium工作原理
一.前言 对于appium自动化测试环境的搭建我相信90%的自学者都是在痛苦中挣扎,在挣扎中放弃,在放弃后又重新开始,只有10%的人,人品比较好,能够很快并顺利的搭建成功.appium 自动化测试 ...
- Appium自动化测试(1)-安装&环境
需要链接appium自动化测试教程 http://www.cnblogs.com/fnng/p/4540731.htmlappium中文文档:https://github.com/appium/app ...
- Appium自动化测试3之获取apk包名和launcherActivity后续
接着“Appium自动化测试3之获取apk包名和launcherActivity”章节介绍 测试脚本 1.测试脚本如下: # -*- coding:utf-8 -*- import os, time, ...
- 记安卓appium自动化测试实践
一.软件安装 1. 安装node.js,安装路径D:\Program Files\nodejs\ 可以在官网下载https://nodejs.org/zh-cn/download/,版本号为node- ...
- 你的第一个自动化测试:Appium 自动化测试
前言: 这是让你掌握 App 自动化的文章 一.前期准备 本文版权归作者和博客园共有,原创作者:http://www.cnblogs.com/BenLam,未经作者同意必须在文章页面给出原文连接. 1 ...
- Appium自动化测试环境搭建
前言 Appium是一个开源的自动化测试框架,支持跨平台,支持多种编程语言,可用于原生,混合和移动web应用程序,使用webdriver驱动ios,android应用程序.那么为了学习app自动化测试 ...
- Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...
随机推荐
- 处理界面上使用两个jq的报错
转载:http://www.365mini.com/page/jquery_noconflict.htm <script src="jquery-1.9.1.js">& ...
- ugui中实现圆形按钮
实现圆形按钮,原本是使用 alphHitTestMinimumThreshold 改成重载IsRaycastLocationValid来实现,直接贴代码 using UnityEngine; usin ...
- SQL 2005 分页存储过程
-- ============================================= -- Description: <高效分页存储过程,适用于Sql2005以上> -- ...
- Redis核心解读(转)
原文:Redis核心解读 Redis是知名的键值数据库,它广泛用于缓存系统.关于Redis的信息已经不用我多介绍了.这个系统的Redis文章主要从另外一个角度关注,Redis作为一个开源项目,短短2W ...
- 流畅的python 闭包
闭包 人们有时会把闭包和匿名函数弄混.这是有历史原因的:在函数内部定义函数不常见,直到开始使用匿名函数才会这样做.而且,只有涉及嵌套函数时才有闭包问题.因此,很多人是同时知道这两个概念的.其实,闭包指 ...
- 聚合的安全类导航、专业的安全知识学习平台——By Me:)
以“基于对抗的安全研发”为初衷,让大家在工作中始终有安全意识.安全思维和安全习惯,几年前自己搭建了面向公司内部全员的安全晨报.现在站在“用户“的角度回头看看,觉得科目设计等很多方面都还有很多的不足: ...
- 0501-Hystrix保护应用-超时机制、断路器模式简介
一.概述 hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystri ...
- laravel相关插件
1. Laravel-4-Generators Rapidly speed up your Laravel workflow with generators https://packagist.or ...
- beego——模型定义
复杂的模型定义不是必须的,此功能用作数据库数据转换和自动建表 默认的表名规则,使用驼峰转蛇形: AuthUser -> auth_user Auth_User -> auth__user ...
- day4 字符串的使用方法
一.字符串切片 索引和切片 [起始位置:结束位置:步长] s1 = 'python全栈8期' # 索引从0开始[索引(下标,index)] print(s1[0]) print(s1[3]) prin ...