当前位置: 首页 > news >正文

UI自动化测试实战

补充:Selenium主要用于Web页面的自动化测试,它可以模拟用户的各种操作,如点击、输入、滚动等,来测试网页的功能。而Appium是一个开源的移动端自动化测试工具。

一、自动化测试实战章节

  • 自动化测试流程
  • 测试用例编写
  • 项目自动化测试环境的搭建
  • 自动化测试脚本的编写
  • 生成报告

二、自动化测试流程

1、自动化测试满足的条件:

  • 项目周期长
  • 项目需要回归测试
  • 回归测试的内容需求变更不能太频繁

2、流程

  • 分析需求:分析是否需要自动化测试
  • 挑选功能:核心功能和界面变动频繁的功能
  • 设计测试用例
  • 搭建环境
  • 项目搭建
  • 编写代码
  • 执行测试用例

三、自动化测试用例编写原则

1、编写测试用例的原则:

  • 自动化测试用例一般实现核心业务流程或重复率高的功能
  • 自动化测试用例的选择一般以正向逻辑为主
  • 自动化测试用例一般要回归原点,也就是项目首页(比如支付和取消订单,如果支付错误就可能导致取消订单错误,就无法判断那个页面出现bug)

2、核心业务流程:

  • 登录-发布商品  (后台管理)
  • 登录-查询商品-加入购物车(门户)
  • 登录-搜索商品(app)

四、自动化测试环境搭建

1、工具环境

  • python
  • pycharm编码工具
  • web端:浏览器、浏览器驱动程序、selenium
  • app端:jdk、Andriod-SDK、appium

2、依赖包

  • selenium 
  • Appium-Python-Client
  • parameterized
  • pytest
  • pytest-ordering
  • pytest-html
  • pytest-rerunsfailures
  • allure-pytest

3、工程目录初始化

  • base:python包
  • data:测试数据文件
  • img
  • log:日志文件
  • page:python包
  • report:HTML报告、文件夹
  • script:python包
  • config.py:全局配置文件
  • pytest.ini:pytest配置文件
  • utils.py:工具类

五、utils代码(驱动工具类+获取公共函数+读取json数据)

1、utils的作用

(1)驱动工具类

(2)判断元素是否存在的函数(全局使用)

  • 公用获取元素信息的函数(执行完测试用例后,对获取结果的元素数据做断言)
  • 公用根据文本判断元素是否存在的函数
  • 数据驱动读取数据的函数

2、驱动工具类

2、公用函数

导包

查找元素,并输出元素文本

查找元素是否存在当前页面或者移动应用

3、读取json代码

六、初始化代码-pytest.ini

七、初始化代码-config.py

在base-ini.py文件中加入这段代码:

八、基类代码-base

1、base_page

九、page目录(page目录中的类都继承了base的类,可以直接调用base的类方法)

1、login_page.py(登录页面封装)

2、home_page(首页封装)

3、goods_page.py

十:script测试用例(script类中没有继承page目录的类方法,因此得通过实例化对象调用page的类方法)

1、test_login.py(执行登录测试用例并断言)

2、test_goods.py

十、后台管理系统用例

1、测试用例的脚本编写情况

手工操作断言--定义页面文件(一个操作页面一个py文件)--封装PO(类:代表页面的对象)--编写测试脚本--执行测试脚本

2、后台登录-PO封装

接口的测试用例:测试步骤,测试数据,预期结果

3、page(目录)-login_page(文件)

http://www.lryc.cn/news/464775.html

相关文章:

  • 东方智者颜廷利:以哲学思想促进世界和谐与无私奉献
  • 基于 springboot vue停车场管理系统 设计与实现
  • 如何验证ssl私钥和证书是否匹配?
  • MongoDB的基本操作
  • spring mvc后端实现过程
  • 102005
  • Cisco ACI环境给Leaf配置OOB带外管理IP方法
  • 免费送源码:Java+B/S+MySQL springboot电影推荐系统 计算机毕业设计原创定制
  • 数据清洗(脚本)
  • jmeter中发送post请求遇到的问题
  • Java中使用protobuf
  • 2020款Macbook Pro A2251无法充电无法开机定位及修复
  • Spring Cloud --- 引入Gateway网关
  • ESP32-C3实现定时器的启停(Arduino IDE)
  • centos升级g++使其支持c++17
  • Pytest日志收集器配置
  • Morris算法(大数据作业)
  • TCP/IP协议 【三次握手】过程简要描述
  • docker 数据管理,数据持久化详解 二 数据卷容器
  • Logrotate:Linux系统日志轮转和管理的实用指南
  • 八股面试3(自用)
  • 【微服务】springboot3 集成 Flink CDC 1.17 实现mysql数据同步
  • 【Android】浅析OkHttp(1)
  • Generate-on-Graph
  • 学习笔记——交换——STP(生成树)简介
  • 【Linux从入门到精通一】操作系统概述与Linux初识
  • Git 深度解析 —— 从基础到进阶
  • PCIE-变量总结
  • 【iOS】AFNetworing初步学习
  • 【数据结构】堆的创建