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)

最新文章

  1. MongoDB命令及SQL语法对比
  2. iOS上线...踩坑
  3. [转]8年javascript知识点积累
  4. [LeetCode] Remove Duplicates from Sorted Array
  5. javascript冷知识
  6. spring aop配置及用例说明(1)
  7. input与button按钮背景图失效不显示的解决办法
  8. linux之vim编辑器
  9. extjs Cannot read property 'dom' of null
  10. C++中初始化和定义对象的语法,带括号与不带括号的区别
  11. SqLiter
  12. Swift 基本基本运算符
  13. html+css基础篇
  14. jsp上的九个隐含对象
  15. OPP面向对象的介绍及使用
  16. FreemarkerJavaDemo【Android将表单数据生成Word文档的方案之一(基于freemarker2.3.28,只能java生成)】
  17. Django-models & QuerySet API
  18. iReport 5.6.0 PDF导出中文不显示问题 解决方案
  19. CentOS 6.x 最小化安装推荐安装的依赖包和修改内核参数
  20. redis常用客户端命令

热门文章

  1. mysql数据库表插入单条数据/批量插入数据
  2. Giraph执行报错,Error: Exceeded limits on number of counters - Counters=120 Limit=120, exiting...
  3. Angular4中常用管道(转载)
  4. django的安装、文件解释与基本命令
  5. [转]c# 画图中bitmap类处理出图片时,存储的注意事项
  6. HTML布局--使用<div>元素
  7. day3-python-文件操作(1)
  8. TCP/IP 网络结构
  9. PHP 权限管理
  10. module.exports和exports得区别