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

Windows10系统Web UI自动化测试学习系列1--介绍(序章-万事开头难)

测试学习记录,仅供参考!

相关简介

        1、环境安装:Python-PyCharm、浏览器驱动、第三方工具、JDK 、Tomcat、Jenkins、Git 等;

        2、Web 应用程序测试工具 Selenium、Pytest 测试框架、 POM 设计模式;

        3、Selenium 元素定位、元素操作、常用函数、等待方式、文件操作等基本知识;

        4、Pytest 测试框架基础、Pytest 插件、多种执行顺序方法、多种参数化数据驱动、前后置应用等;

        5、框架设计、二次开发封装公共方法、装饰器使用、测试用例、测试截图、生成测试报告等;

        6、测试项目实战、数据库连接、日志封装运用、测试结果推送、持续集成(CI)和持续部署(CD)等;

        7、总结

        其他:需提前学习了解 计算机基础知识、计算机应用技术、软件测试、Python 高级编程语言等相关知识;

适合自动化测试场景的项目和注意点

        项目趋于稳定,项目周期长,需求变动不频繁,且被测项目系统的开发较为规范,能够保证系统的可测试性,选择较稳定的版本业务,选择重点业务,一般项目开发初期不适用自动化测试;

        目标是保证主要功能业务完整正常,而不是为了发现更多的 BUG,不能指望自动化测试去发现更多新的BUG,自动化测试能发现的缺陷远远比手工测试少,不建议选择流程较复杂的业务;

        自动化测试并不能减少人力成本,主要作用是加快测试反馈,提高测试质量,自动化测试的产出价值往往在于长期的回归测试,短期内发挥的作用可能不明显,自动化测试和测试开发是有区别的;

        需要频繁执行回归测试的系统,跑回归测试,减少手工操作量,可以帮助测试人员自动执行重复的测试任务,提高测试效率并减少人工错误;

        测试平台是一个 web 系统,测试平台的研发在行业内是比较小众的,大部分是用来忽悠不太懂自动化测试的;

        其他等等;例如:会软件测试(匠人精神,热烈欢迎每一位测试爱好者;在教材书本上软件测试是软件质量保证的重要且主要手段,开发人员和产品经理均可参与测试,只是测试工程师更加专业,大家各司其职);

selenium4.0简介

        Selenium是一个流行的自动化测试工具,用于测试Web应用程序的功能和用户界面。它可以模拟用户在浏览器中的操作,如点击、输入文本、选择下拉框等,以及验证页面元素的状态和属性。Selenium可以帮助测试人员自动执行重复的测试任务,提高测试效率并减少人工错误。

原理:

在自动化程序中,需要导入selenium库中的WebDriver类来创建一个WebDriver对象,通过调用selenium客户端库相应的函数发送请求给浏览器驱动(如ChromeDriver)。

当使用WebDriver驱动程序执行代码时,WebDriver会将我们的指令转化为HTTP请求,并将其发送给浏览器驱动程序。

浏览器驱动是连接Selenium库和浏览器的桥梁,它负责与浏览器进行通信,并执行我们编写的代码来控制和操作浏览器。

浏览器驱动程序接收到这些HTTP请求后,会将其转化为浏览器可执行的指令,并将指令发送给浏览器进行执行。执行完成后,浏览器将结果返回给浏览器驱动程序,再由浏览器驱动程序将结果转化为HTTP响应,并将其返回给我们的代码程序。
 

selenium特点
  • 免费开源
  • 支持多语言,支持Java、Python、C#
  • 支持多平台,可以在window、Linux、Mac运行
  • 支持很多浏览器,Chrome、edge、Firefox、Safari
  • 分布式,可以把我们的测试用例分发到不同的机器上去执行
  • 技术支持,成熟的社区

selenium4.0新特性

        1)使用selenium4.0以上,要求python版本为3.7及以上

        2)定位语法差异,selenium4.0以上已经弃用find_element_by_*,统一使用find_element(by,value)、find_elements(by,value)

        3)增加了相对定位,可用的相对定位:above 元素上、below 元素下、toLeftOf 元素左、ToRightOf 元素右、near 附近

        4)selenium4.0以后提供了打开新的窗口的功能,driver.switch_to.new_window()

前置工作(基于 Python 语言编程)

1、安装 Python 相关环境,例如:Python 解释器、PyCharm 工具等等(烦请自行安装)

进入jetbrains官网下载或者选择历史版本下载页面:https://www.jetbrains.com/pycharm/download/other.html

若未安装请参考后面的环境安装教程;

2、如若 Python环境已经搭建好(例如:Python、PyCharm 等)

打开 PyCharm ,新建一个项目,例如项目名称为webuitestauto(自定义项目名称)

3、安装selenium库( 最新版本--selenium4.xx)

安装第三方库的方式方法众多,自行选择;例如以下几种方式;

        1)、PyCharm→文件(F)→设置(T)...→项目→Python 解释器→添加解释器/安装→可用软件包→文本输入框搜索→选择确定→安装软件包(I)→安装成功即可

        2)、打开cmd命令行 pip install selenium

        3)、在PyCharm工具命令窗口里面(终端窗口 快捷键 Alt+F12)

        4)、使用其他第三方模块安装工具

注意安装selenium库的版本,selenium4版本和selenium3版本是有一些区别的

4、安装对应浏览器驱动

若未配置浏览器驱动烦请查看后续的“浏览器驱动”相关教程;

5、合适的练习项目

6、其他等等(其他相关知识自行学习了解)

7、测试寄语:学习没有一蹴而就,大家伙都是通过不懈努力,一步一步积累汇聚而成。

小试牛刀

1、在项目根目录下新建一个名称为 test_selenium_demo.py 的 Python 文件,简单测试;

from selenium import webdriver# 实例化浏览器
driver = webdriver.Edge()# 访问网页
driver.get('https://www.baidu.com/')# 元素定位,selenium3.0和4.0的差异
# selenium3.0写法
ele = driver.find_element_by_id('id')
print(ele)

2、运行 test_selenium_demo.py 文件会报错,selenium3.0的写法在selenium4.0之后不支持,已经弃用了

============================= test session starts =============================
collecting ...
test_selenium_dome.py:None (test_selenium_dome.py)
test_selenium_dome.py:12: in <module>ele = driver.find_element_by_id('id')
E   AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'
collected 0 items / 1 error!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
============================== 1 error in 2.20s ===============================进程已结束,退出代码为 2

3、只打开网页;

from selenium import webdriver# 实例化浏览器
driver = webdriver.Edge()# 访问网页
driver.get('https://www.baidu.com/')# 元素定位,selenium3.0和4.0的差异# selenium3.0写法
# ele = driver.find_element_by_id('id')
# print(ele)
# driver.find_element_by_name('wd')
# driver.find_element_by_class_name('s_ipt')
# driver.find_element_by_xpath('')

5、运行 test_selenium_demo.py 文件,运行成功,可以正常打开访问网页,可添加等待时间查看效果;

============================= test session starts =============================
collecting ... collected 0 items============================ no tests ran in 2.53s ============================进程已结束,退出代码为 5Empty suite

6、使用新版 selenium4.0 以上版本写法;

8、测试代码;

from selenium import webdriver
# 把 By 这个类导入
from selenium.webdriver.common.by import By
import time# 实例化浏览器
driver = webdriver.Chrome()
# 网址URL
my_url = "https://www.baidu.com/"# 打开访问网页
driver.get(my_url)# 元素定位,selenium3.0和4.0的差异# selenium3.0写法
# ele = driver.find_element_by_id('id')
# print(ele)
# driver.find_element_by_name('wd')
# driver.find_element_by_class_name('s_ipt')
# driver.find_element_by_xpath('')# selenium4.0写法
# driver.find_element 单个元素定位
# driver.find_elements 定位一个列表,以列表返回
# 第一个参数 定位方式 -- 第二个参数 元素属性值
driver.find_element(By.ID, 'kw').send_keys('这是一个ID定位测试')
# driver.find_element(By.NAME, 'wd').send_keys('这是一个NAME定位测试')
# driver.find_element(By.CSS_SELECTOR, '#kw').send_keys('这是一个CSS定位测试,表示id')
# driver.find_element(By.CSS_SELECTOR, '.s_ipt').send_keys('这是一个CSS定位测试 .表示class')# 打开新的窗口
# driver.switch_to.new_window()# 停留3秒
time.sleep(3)# 退出
driver.quit()

未完待续。。。

http://www.dtcms.com/a/394029.html

相关文章:

  • 安装vllm的艰苦过程
  • 探索 Event 框架实战指南:微服务系统中的事件驱动通信:
  • FPGA超高速接口GTP_GTY_GTX使用说明
  • Blender常用第三方插件总结
  • Kurt-Blender零基础教程:第2章:建模篇——第3节:陈列/父子级/蒙皮/置换修改器与小狐狸角色建模
  • npm启动项目报错“无法加载文件……”
  • 从 0 到 1 精通 Nacos:服务发现与配置中心的实战指南
  • 基于DrissionPage的趣易百影院数据采集实战指南
  • github十大开源FPGA项目
  • R语言 csv新增一列 dplyr操作
  • IDEA创建Module子项目后,只有一个普通的文件夹
  • 支持向量机深度解析:从数学原理到工程实践的完整指南
  • 2025华为杯研究生数学建模竞赛B题及求解思路
  • 三星CIS全球产能布局解析:本土根基、海外扩张与策略雄心
  • js集装箱号校验算法
  • 【机器学习】最优传输(OT)和 KL散度的区别
  • 推荐一个随机生成图片的网站: Lorem Picsum
  • APE自动化提示词工程
  • 探究某黄鱼x-sign生成算法——终极篇
  • 霍尔传感器安装错位下的FOC控制:线性插值与锁相环(PLL)算法的抉择
  • FFmpeg 深入精讲(三)FFmpeg 中级开发
  • AI驱动下的蛋白质设计
  • ARM基本汇编操作指令
  • 电商搜索 API 的优化与性能提升:从瓶颈突破到体验升级
  • 使用DeepSeek辅助测试一个rust编写的postgresql协议工具包convergence
  • 【00】EPGF 架构搭建教程之 总揽篇
  • 深度剖析 vector 底层原理:从手写实现到核心技术点全解析
  • 嵌入式开发学习日志29——stm32之定时器中断
  • 通俗范畴论17.3 向量空间的对偶与双对偶
  • 表格 表头增加悬浮提示内容