Web自动化测试(一)

什么是web自动化测试:

通过模拟⽤户在Web浏览器中与应⽤程序进⾏交互的⾏为来验证应⽤程序的功能和⾏为是否正确。(通俗来讲就是: 模拟⽤户对浏览器端的项⽬进⾏各种操作测试 )

⾃动化测试相对于⼿⼯测试的好处 :

1.提升测试执⾏的效率(机器的执⾏速度要⽐⼿⼯测试要快)

2.提⾼测试执⾏的准确率(执⾏的是提前设置好的步骤,避免了⼈为执⾏的时候出的纰漏)

3.减少回归测试花费的时间(回归测试的时候需要花费时间执⾏前置步骤来准备测试数据)

2.什么类型的项⽬适合做Web⾃动化

必备条件(没有就很难进⾏⾃动化的⼯作):

1.软件需求变动不频繁

2.软件系统界⾯稳定,变动少

3.被测软件系统开发较为规范,能够保证系统的可测试性

可选条件(没有也能开展⾃动化的⼯作,只是达不到最好的效果):

1.⽐较频繁的回归测试

2.项⽬进度压⼒不太⼤(项⽬紧张,能抽出⼈⼿做⾃动化也可以同步进⾏)

3.软件维护周期⻓(只要整体可以⽐⼿⼯测试的性价⽐更好即可)

4.⾃动化测试脚本可重复使⽤

5.测试⼈员具备较强的编程能⼒(⾃动化测试平台可以解决这个问题)

6.需要在多平台上运⾏的相同 测试案例、组合遍历型的测试,以及⼤量的重复任务

7.每⽇构建后的测试验证

3.自动化测试的流程

|------|----------|----------------------------------|
| ⼿⼯测试 | ⾃动化测试 |
| 1 | 需求评审 | ⽤例评审会(筛选需要转为⾃动化测试⽤例的功能测试) |
| 2 | 制定测试计划 | 制定⾃动化测试计划(分配任务、划分模块、制定测试时间周期等) |
| 3 | 搭建测试环境 | 搭建⾃动化测试环境(提前把⾃动化运⾏的环境搭建好) |
| 4 | 编写⼿⼯测试⽤例 | 编写⾃动化测试⽤例(把筛选过后的⼿⼯测试⽤例转为代码的形式) |
| 5 | ⽤例评审会 | 调试代码(确保编写的⾃动化脚本⽤例⽆误) |
| 6 | 执⾏⽤例 | 执⾏⽤例(执⾏编写好的⾃动化⽤例,部分情况需要按不同的条件执⾏) |
| 7 | Bug维护 | Bug维护(把测试出来的bug和开发沟通进⾏维护) |
| 8 | 回归测试 | 回归测试(确保Bug修复完成后,进⾏统⼀的回归测试验证) |
| 9 | 制定测试报告 | ⾃动化⽣成测试报告(依靠框架⾃动⽣成测试报告) |
| 10 | 上线评审会 | 上线评审会(判断是否达到了上线的标准) |

4.Web⾃动化环境搭建

1)使⽤pycharm编辑器创建⼀个python项⽬( 统⼀使⽤虚拟环境 ,避免环境错乱导致其他的问题出现)

2.selenium安装:

selenium版本统⼀为4.2

示例:pip install selenium==4.2 -i https://mirrors.aliyun.com/pypi/simple/

pip更新:

如果出现警告提示,需要更新pip的版本,执⾏⼀下命令(建议附带镜像源,不然会很慢):

python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/

国内镜像源( 安装其他依赖库的时候,也可以使⽤镜像源,需要 -i 镜像源地址 ) :

复制代码
⾖瓣: https://pypi.douban.com/simple/
阿⾥: https://mirrors.aliyun.com/pypi/simple/
华中理⼯⼤学: https://pypi.hustunique.com/simple/
⼭东理⼯⼤学: https://pypi.sdutlinux.org/simple/
中国科学技术⼤学: https://pypi.mirrors.ustc.edu.cn/simple/
清华: https://pypi.tuna.tsinghua.edu.cn/simple/

3) chromedriver驱动下载地址( 匹配⾃⼰本机的版本,以⼩数点为间隔,前三位⼀致,最后⼀ 遵循就近原则 )

https://chromedriver.chromium.org/downloads

4.selenium的底层原理

W3C协议:万维⽹联盟(World Wide Web Consortium,缩写为W3C) -- 所有可以操作浏览器的动作都可以通过调⽤接⼝实现

相关推荐
艾莉丝努力练剑41 分钟前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表
橡晟4 小时前
深度学习入门:让神经网络变得“深不可测“⚡(二)
人工智能·python·深度学习·机器学习·计算机视觉
墨尘游子4 小时前
神经网络的层与块
人工智能·python·深度学习·机器学习
倔强青铜35 小时前
苦练Python第18天:Python异常处理锦囊
开发语言·python
u_topian5 小时前
【个人笔记】Qt使用的一些易错问题
开发语言·笔记·qt
企鹅与蟒蛇5 小时前
Ubuntu-25.04 Wayland桌面环境安装Anaconda3之后无法启动anaconda-navigator问题解决
linux·运维·python·ubuntu·anaconda
autobaba5 小时前
编写bat文件自动打开chrome浏览器,并通过selenium抓取浏览器操作chrome
chrome·python·selenium·rpa
珊瑚里的鱼6 小时前
LeetCode 692题解 | 前K个高频单词
开发语言·c++·算法·leetcode·职场和发展·学习方法
AI+程序员在路上6 小时前
QTextCodec的功能及其在Qt5及Qt6中的演变
开发语言·c++·qt
xingshanchang6 小时前
Matlab的命令行窗口内容的记录-利用diary记录日志/保存命令窗口输出
开发语言·matlab