password
查看人数
type
status
date
slug
summary
category
icon
tags
作者
状态
😀

【基于UI的自动化测试开发 在实际项目中合适的介入场景/条件是什么?】

 
一。 项目背景方面
  1. 项目生命周期较长(软件有稳定的客户需求,升级或客户定制版本不断的推出); 并且被测软件有较多或繁琐业务流程等 在每轮迭代中 需要反复测试操作。
  1. 被测软件本身需求、界面设计、业务流程/功能 基本稳定, 选择要开发为脚本的功能或业务部分已经没有重大的bug
二。技术方面 1. 能找到适合于本项目技术特点的 自动开发工具。 工具选择原则:团队成员掌握工具所需的基本技能、工具本身基本成熟且有维护支持、工具使用成本能承受(开源)
  1. 开发的配合,能提供界面设计方面的协助。

【基于selenium工具自动化的基本原理】

  1. 通过webDriver(浏览器驱动程序) 间接控制浏览器的动作。
  1. selenium包提供的 主要是 webdriver的API(应用程序编程接口)

【准备好对应selenium工具体系的环境】

  1. 浏览器 品牌和版本
  1. 对应webdriver 品牌和版本
  1. selenium库 确定某一版本(3.141.0) (下载指定开发语言对应的版本)
  1. 开发语言常见 python java javascript C#
    1. 【可能的辅助工具】
    2. selenium IDE 录制并生成脚本的工具 (它是firefox浏览器的插件)
    3. 用图像识别方式 定位非HTML页面元素时 采用的sikuly(java)工具。以及 python 调用java程序的桥梁--- "JPype1"
    4. 生成测试报告的 HTML测试执行器 (第3方模块) 【编码工具】 eclipse+JDK+pydev +(eclipse的svn插件) 或 Pycharm(要对应操作系统平台)

【selenium 基本功能】

selenium中最重要的实例(对象)

1) webdriver实例, 怎么得到 ---> “实例化对应浏览器的webdriver类”得到。 先导入webdriver模块, 再使用webdriver中某一个浏览器的webderiver类 完成实例化 例如: driver = webdriver.Chrome()
创建好实例后, 才能通过该driver实例 调用各种操作浏览器的方法
2)webElement实例。 它是怎么得到的? 通过driver.find_element() 方法执行后 得到的返回值 driver.find_element(By.??, “value”).click()
3). actionChains实例 (模拟鼠标或键盘动作), 该实例怎样得到?
导入该类 ac = ActionChain(driver) # 通过driver 实例化得到
执行模拟动作的模式: 安排动作->安排动作->安排动作。。->统一执行动作
例1 : ac.move_to_element().click().send_keys().perform()
例2: "在商品管理模块的商品信息编辑中,输入商品详细描述信息"
4) 特殊元素定位警告弹窗操作 alert实例, 该实例怎样得到的? 通过driver.switch_to.alert 返回得到的
  1. 切换新窗口
    1. 嵌入子页面窗口切换 用ID 或者name
      1. 用例收集

        2.【driver对象的常用方法】

        1) get() 2) quit() 3) find_element()
        find_elements() # 该方法如果未找到任何元素不会报错,返回空列表 4) switch_to 5) implicitly_wait(秒数) # 隐式元素识别的智能等待

        3.【find_element方法的几种方式】

        id、name、classname tagname link_text、 partial_link_text xpath css_selector
        xpath 可以同时从 标签的名称、属性、文本值、层次关系4个维度定位, 准确度高且灵活。
        xpath基本语法格式: //步/步/.../ 每一步的通式: 标签名[修饰方式] 索引 整数值从1开始 @属性=‘值’ text()=‘值’ /../../ 在xpath中可以用两点 表示上一层标签
        // 表示不定子层。 例如 table//td 表示table标签下无论哪一层的td 都匹配
         
        css和xpath语法相似
        标签名[属性修饰]>标签名[属性修饰]
        其中id属性和class属性 不需要写在方括号中 id属性用 # 号
        class属性用 . 号
        css的特点, 部分只能通过元素样式 定位的场景 只有通过css selector方式实现 例如: input:checked 表示定位被选中的单选框或复选框

        【Python单元测试框架 unittest】

        1. 导入包 import unittest
        1. 通常用4要素方式来理解unittest
          1. 2.1) 测试固定动作
            2.2) 测试方法
            这两个要点 都是写在测试类中。
            定义测试类的要求:
            2.3) 测试集 unittest.TestSuite类, 实例化该类 可以创建收集测试方法的"容器"
             
        1. 给测试集"容器" 中增加测试方法2种方式:
          1. 1: 是一个测试加载器的discover方法 自动收集指定包下面的符合匹配标准的 测试模块中的测试方法
            2: 手动实例化测试类中的方法,然后加入测试集容器
            假设有测试类为:
            2.4) 测试执行器:
            1.unittest自带的 TextTestRunner类 2. 第三方的 HTMLTestRunner类, 它在HTMLTestRunner.py 模块中实例化测试执行器类后, 调用实例的run方法 把测试收集好测试方法的 测试集传递给run方法执行
         

        selenium 简单示例

         

        开启无头浏览器访问

         
        💡
        有关使用上的问题,欢迎您在底部评论区留言,一起交流~
        adb 常用命令整理locust 当做库使用,通过代码启动
        Loading...