干货分享 —— 如何开展web项目自动化测试!

前言

自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人直接参与的情况下,根据人的要求,通过自动检测、信息处理、分析判断、操纵和控制,达到预期目标的过程。自动化测试是指测试过程是在没有人为或较少人为干预的情况下进行的测试,简单地说,就是用一个程序或脚本来测试程序。在web自动化测试中,主要用于将测试人员从繁琐的内容中解救出来。主要是做一些例如需要多次输入、多次运行的,例如我们使用边界值和等价类设计的大量测试数据需要执行,如当业务流程需要多次执行时,我们就可以使用Web自动化测试。

1、常用工具

现在我们常用的主流web测试工具是selenium那套工具包括:

  • 浏览器一般用chrome

  • 浏览器对应的driver(chromedriver)

  • Python

  • Selenium库

环境安装,这里不再累赘,不会的可以联系老师

2、测试方法

Web自动化测试一般采用与功能测试相同的设计测试用例的方法,使用等价类划分、边界值、因果图、场景法等。

Web自动化测试一般采用PO模式设计实现

PO是Page Object的缩写, 核心思想是通过封装界面元素来减少冗余代码。同时,在后期的维护中,如果元素定位发生变化,只需要调整页面元素封装的代码即可,提高测试用例的可维护性、可读性。

PO模式可以将一个页面分为三层,对象库层、操作层、业务层。

  • 对象库层:封装定位元素的方法。

  • 操作层:封装对元素的操作。

  • 业务层:组合一个或多个操作来完成一个业务功能。

例如登录:需要输入帐号、密码、点击登录三个操作。

测试脚本只需要调用业务层代码即可完成

当出现页面需要时,只需要测试代码即可,无需修改,只需要修改操作层即可。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

3、自动化实施

1)明确测试目标和范围

在开始自动化测试之前,首先需要明确测试的目标和范围。这通常包括确定要测试的功能模块、性能指标、安全性要求等。例如,在一个电商网站项目中,测试目标可能包括用户注册、登录、商品浏览、购物车管理、订单支付等功能模块。

2)选择合适的自动化测试工具

根据测试目标和项目需求,选择合适的自动化测试工具。在选择工具时,需要考虑工具的兼容性、易用性、可扩展性等因素。以Selenium为例,它是一个广泛使用的Web自动化测试工具,支持多种浏览器和操作系统,具有丰富的API和插件,能够满足复杂的测试需求。

3)搭建测试环境

搭建用于自动化测试的环境,包括测试服务器、测试浏览器、测试数据库等。确保测试环境与实际生产环境尽可能一致,以模拟真实的用户操作场景。例如,在电商网站项目中,可以搭建一个与生产环境相似的测试环境,包括商品数据、用户数据等。

4)设计测试用例

根据测试目标和需求文档,设计详细的测试用例。测试用例应包括测试场景、测试步骤、预期结果等关键信息。以用户注册功能为例,可以设计以下测试用例:

  • 输入正确的用户名和密码,点击注册按钮,预期结果为注册成功并跳转到登录页面。

  • 输入已存在的用户名进行注册,预期结果为提示用户名已存在。

  • 输入不符合规范的用户名或密码(如长度不足、包含特殊字符等),预期结果为提示输入错误。

5)编写自动化测试脚本

使用自动化测试工具编写测试脚本,模拟用户操作执行测试用例。在编写脚本时,要注意代码的可读性和可维护性。以Selenium为例,可以使用其提供的WebDriver API编写测试脚本。以下是一个简单的Selenium测试脚本示例:

from selenium import webdriver  from selenium.webdriver.common.keys import Keys    # 初始化浏览器  driver = webdriver.Chrome()    # 打开网页  driver.get("http://www.example.com/register")    # 输入用户名和密码  username = driver.find_element_by_id("username")  username.send_keys("testuser")    password = driver.find_element_by_id("password")  password.send_keys("testpassword")    # 点击注册按钮  register_button = driver.find_element_by_id("register-button")  register_button.click()    # 检查注册结果  if "登录" in driver.page_source:      print("注册成功!")  else:      print("注册失败!")    # 关闭浏览器  driver.quit()

6)执行自动化测试

在测试环境中执行自动化测试脚本,并监控测试过程。可以使用测试管理工具来执行测试脚本,并查看测试结果和日志信息。在电商网站项目中,可以通过设置定时任务或触发条件来自动执行测试脚本,以确保Web应用的稳定性和可靠性。

7)分析测试结果并报告

收集和分析测试结果,生成测试报告。测试报告应包含测试目标、测试范围、测试用例执行情况、缺陷统计和修复情况等内容。根据测试结果,可以评估Web应用的质量和性能是否满足需求,并提出改进建议。在电商网站项目中,可以根据测试报告来优化用户注册、登录等功能的用户体验和性能表现。

图片

8)缺陷管理与跟踪

将发现的缺陷提交给开发团队进行修复,并跟踪缺陷的修复进度和验证修复结果。确保每个缺陷都得到及时处理和验证,以提高Web应用的质量和用户体验。在电商网站项目中,可以使用缺陷管理工具来跟踪和管理缺陷的修复过程。

9)迭代与优化

根据测试结果和用户反馈,对自动化测试流程进行迭代和优化。例如,可以调整测试用例的设计、优化测试脚本的编写、改进测试环境的搭建等。通过不断地迭代和优化,可以提高自动化测试的效率和准确性,为Web应用的质量保障提供有力支持。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

史上最全软件测试自学资料大全(学习路线+视频教程+文档资料+PDF面试文档)作为一个软件测试的过来人,小濠想尽自己最大的努力,帮助每一个伙伴都能顺利找到满意的工作。我花费了很多时间细心钻研,在收集了近 200G 干货、 1500份资料中精心筛选出来了这份「软件测试资料包」。你只需要花很少的时间就能快速地icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=Mzk0OTI0ODM2Mg==&mid=2247489248&idx=1&sn=3d7dbe28d58e5147c409c7e5f059d8ea&chksm=c35a1ee5f42d97f397fd420ce40f72b60195d4ffb42c34f61300463711347815f2e5656defa4&token=1425287504&lang=zh_CN#rd最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零构建vue3+ts+vite项目打包及项目依赖配置

❗️❗️❗️❗️ 写在最前: 本文是根据B站作者 月光分层 视频vuets 工程化配置以及作者笔记稍作整理 💖💖作者B站地址https://space.bilibili.com/14110850 💖💖视频教程地址vuets 工程化配置 💖💖作者微信…

【计算机毕业设计】安卓054基于Android校园助手

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

LAMP源码编译安装——CentOS7

文章目录 LAMP是什么LAMP软件组件LinuxApacheMySQLPHP 源码安装Apache一、准备工作二、安装环境依赖包三、配置软件模块四、编译及安装五、优化配置文件路径六、添加httpd系统服务(有两种方法)方法一:方法二: 七、修改httpd 服务配…

公告:关于博主的重要通知

大家好,我是博主夏目。 本期不分享知识,博主想说明一下博主的一些重要提示。 分享的内容,从不收费,也未向任何人进行收费。 意在分享知识,传播文化,结交更多志同道合的朋友。 截至目前,从未…

《C++ Primer Plus》第十二章复习题和编程练习

目录 一、复习题二、编程练习 一、复习题 1. 假设String类有如下私有成员: // String 类声明 class String { private: char* str;int len;// ... };a. 下述默认构造函数有什么问题? String::String() { } // 默认构造函数b. 下述构造函数有什么问题…

VirtualBox+Ubuntu22.10+Docker+ROS2

Docker 拉取ros2镜像 docker pull osrf/ros:foxy-desktop 运行 docker run -it --nameros2 -p 50022:22 osrf/ros:foxy-desktop 进入容器安装组件 apt-get update apt-get install vim apt-get install git apt-get install net-tools # 安装ssh apt-get install openssh…

centos下给es7.12.1设置密码

安装可参考: centos7下安装elasticsearch7.8.1并配置远程连接_在一台服务器centos7上安装和配置elasticsearch。-CSDN博客 1、先停掉es进程 2、设置输入密码后访问配置 cd /home/soft/elasticsearch-7.12.1/config vim elasticsearch.yml 3、启动es服务 cd /home/…

香橙派 AIpro开发板初上手

一、香橙派 AIpro开箱 最近拿到了香橙派 AIpro(OrangePi AIpro),下面就是里面的板子和相关的配件。包含主板、散热组件、电源适配器、双C口电源线、32GB SD卡。我手上的这个是8G LPDDR4X运存的版本。 OrangePi AIpro开发板是一款由香橙派与华…

在Python中实现限定抽奖次数的机制

目录 一、引言 二、需求分析 三、设计思路 四、代码实现 4.1 使用字典存储用户抽奖次数 4.2 使用数据库存储用户抽奖次数 五、扩展与优化 六、总结 一、引言 在当今互联网应用中,抽奖系统作为吸引用户、提高用户参与度和活跃度的重要手段,已经被…

为什么配置了安全组还是有攻击进来?

面对DDoS攻击,即使配置了安全组规则来限制入站流量,攻击者仍可能找到绕过这些基本防护措施的方法,尤其是当攻击流量巨大时。这是因为安全组主要工作在网络层和传输层,它们依据IP地址、协议和端口号来过滤流量,对于应用…

Android14 WMS-窗口添加流程(一)-Client端

窗口布局在onCreate方法中通过setContentView(R.layout.xxx)加载,但窗口的显示并不是在wm_on_create_called中, 而是在wm_on_resume_called后,也就是说应用onResume时此窗口是不可见的,真正可见是当此window窗口的mDrawState变化状态从NO_SUR…

Raven2掠夺者2渡鸦2游戏预约注册教程 账号注册教程

《渡鸦2》是一款源自韩国的创新力作,作为《Raven》系列的最新续篇,这款游戏在MMORPG手游领域内再度扩展了其标志性的暗黑奇幻宇宙,融入了大量革新的游戏设计与丰富内容。定档于2024年5月29日开启公测的《渡鸦2》,正处在紧张刺激的…

blender复制uv贴图

1、新建两个猴头 2、点击其中一个进入uv编辑模式 3、在uv编辑中打开一个图像 4、新建一个材质球,将图像渲染到模型上 打开图像纹理 选择刚才打开的图像 切换到材质预览模式后,就可以看到贴图了 5、选择一个孤岛 6、然后选择拼排孤岛 可以看到该模型展开…

【全开源】JAVA人力资源招聘社会校招类型招聘系统校园招聘PC端

塑造企业高效招聘新体验 一、源码简介 招聘PC端源码,一款面向企业的招聘管理系统解决方案。它拥有完整的招聘流程管理功能,从职位发布到候选人管理,再到面试安排与结果反馈,所有环节都通过直观易用的界面进行展现,大…

Vivado打开之前项目仿真过的波形文件

第一步:顶部菜单 点击:Open Static Simulation 然后在弹出的窗口找到.sim结尾的文件夹,在里面找到wdb结尾的文件,点击ok 第二步:依次点击下方红圈 找到wcfg结尾的文件,点击ok即可

第十三届蓝桥杯国赛大学B组填空题(c++)

A.2022 动态规划 AC; #include<iostream> #define int long long using namespace std; int dp[2050][15]; //dp[i][j]:把数字i分解为j个不同的数的方法数 signed main(){dp[0][0]1;for(int i1;i<2022;i){for(int j1;j<10;j){//一种是已经分成j个数,这时只需每一个…

坦克飞机大战项目详解:从包结构到测试发布

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、项目初始化与包结构构建 代码案例&#xff1a; 二、资源文件与配置文件管理 代码案例…

MySQL简单测试和安装

MySQL 的特点 1、MySQL 性能卓越、服务稳定&#xff0c;很少出现异常宕机。 2、MySQL开放源代码且无版权制约&#xff0c;自主性及使用成本低。 3、MySQL历史悠久(版本众多)&#xff0c;用户使用活跃&#xff0c;遇到问题可以寻求帮助。 4、MySQL体积小(相对大型关系型数据库)…

linux安装mysql后,配置mysql,并连接navicate软件

Xshell连接登陆服务器 输入全局命令 mysql -u root -p 回车后&#xff0c;输入密码&#xff0c;不显示输入的密码 注意mysql服务状态&#xff0c;是否运行等 修改配置文件my.cnf&#xff0c;这里没找到就找my.ini&#xff0c;指定有一个是对的 find / -name my.cnf 接下…

【Web】浏览器指纹:追踪用户的新技术

目录 什么是浏览器指纹&#xff1f;浏览器指纹的原理浏览器指纹的应用使用JavaScript获取浏览器指纹总结 在这个数字化时代&#xff0c;用户隐私和网络安全成为了人们日益关注的话题。而浏览器指纹作为一种追踪用户的新技术&#xff0c;正逐渐受到人们的关注。本文将详细介绍浏…