zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    Frameworks.Entity.Core 5 EntityValidation
    Frameworks.Entity.Core 4
    大叔 Frameworks.Entity.Core 3 Predicate
    大叔 Frameworks.Entity.Core 2 PageList
    Frameworks.Entity.Core 1
    大叔 EF 来分析 EntityFrameworks.Data.Core 2
    大叔 EF 来分析 EntityFrameworks.Data.Core 1
    基于 Lind.DDD 的 权限管理系统
    HttpApplication IHttpAsyncHandler, IHttpHandler, IComponent, IDisposable ps url System.Web.dll
    MVC 记录
  • 原文地址:https://www.cnblogs.com/my_captain/p/9346992.html
Copyright © 2011-2022 走看看