干货-卷起来,企业级web自动化测试实战落地(一)

news2024/11/17 10:53:47

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

开始前-项目讨论

项目中符合自动化测试的部分有哪些?(目标和范围 scope, 准入准出标准)
稳定的需求点、变动较少的页面;
每日构建后的测试验证 daily build;
比较频繁的回归测试;
需要在多平台上运行的相同测试案例、组合遍历型的测试、大量的重复任务;

自动化用例在整个项目的测试用例的覆盖率?
一般的要求 50% +;
重点的要求 80% +;
根据项目的具体要求,变动特别大的项目需要额外单独考虑覆盖率;

项目团队建设

建立自动化测试的组,理想状态下有4个人员,测试开发、中高级自动化测试工程师、2个初级自动化工程师;非理想的情况下,可能只有一个人。

测试开发:基础答案:自动化框架的建设,确定自动化框架的设计模式、第三方代码工具的封装、中间公共模块的设计和调用、测试用例、测试套件的管理和执行、测试报告和测试结果的输出(文件输出和邮件通知)

可选高级:如果可能的话,需要搭建持续集成服务器(CI,Continuous Integration Server)的环境,进行持续交付和自动化的冒烟测试等。

培训的任务,需要将设计的框架以及封装的驱动,对其他成员进行培训。

有自动化方案的实施经验、有开发背景、以及持续集成的背景等。

中高级自动化测试工程师:配合测试开发人员,实施测试框架的建设。主要负责中间公共模块的实现和实例化等,以及部分高难度和流程复杂的自动化用例脚本编写和调试等工作。

有参与过自动化方案的建设、脚本编写经验丰富、会代码调试、懂Web测试等。

初级自动化测试工程师:
根据中间公共模块的设计,进行实例化公共模块、方法组合,实现自动化用例脚本的编写。有计算机编程思维、有代码经验、可以读懂脚本和HTML等。

项目技术方案选型

Selenium WebDriver、Python(unittest) Java(JUnit)、CI Server

技术方案:
选择Python + Selenium 的技术方案。
使用:Python+Selenium4+Pytest/Unittest+POM+Allure+Jenkins;

首先技术工具是免费的,Python的工具用PyCharm社区版,Selenium的WebDriver是开源工具。利用比较简洁的Python语言进行自动化测试,对于人员的学习成本来讲比较实用,学习时间短,有优势。

另外Python自带的unittest单元测试框架可以很方便的实现自动化用例的设计和执行以及自动化用例套件的管理等任务。Python是纯面向对象的语言,后续也可以过渡到Java + Selenium进行更加丰富的自动化测试。

此外,可以选择Jenkins作为持续集成服务器,配合Python+Selenium的方案进行自动化冒烟测试。

源代码管理工具(VCS, version control system)

选择SVN(git)作为代码的源代码管理工具。

集成在PyCharm中的步骤如下:
把代码放到SVN在本地签出(check out)的文件夹目录中,例如 D:\SVN\XXProject\Trunck

用PyCharm打开 刚刚部署的代码
选择PyCharm的 VCS|Enable VCS integration,选择 Subversion(svn) 或者 Git

右键项目文件的根目录,选择 Subversion | add to VCS
右键项目文件的根目录,或者选 VCS | Commit Directory…
每天打开代码后,首先 Subversion | update project

硬件:
硬件的要求不高,主要需要独立的测试环境。另外测试人员用的电脑最好是Windows桌面操作系统,需要安装Firefox浏览器,避免47.0的最新版本。测试人员最好也使用Chrome浏览器辅助进行Web元素的定位。

自动化测试环境

Python + Selenium WebDriver
搭建环境步骤:
安装 python3.x (windows xp 不支持 python3.5+);
设置环境变量 path(安装时候也可以解决 勾上 add python.ext to path);
安装Selenium 用pip命令安装 pip install -U selenium;

有无问题?
路径,pip可能定位不到,pip也可能定位到别的文件夹(perl)

方案:cd c:\python34\scripts
外网ip问题。交换机的原因,局域网里面是同一个ip,造成安装超时

火狐的版本 46.0以及以下
windows 7 x64以上的系统,需要用管理员模式运行cmd,否则会安装失败。
普通的使用

定位方式
by id, name, class_name, tag_name, css_selector, xpath, link_text, partial_link_text
主要用的 是 id,name, css_selector, xpath, link_text

Python + Selenium 环境搭建

安装Python,3.x(3.4 3.5 3.6 3.7 3.8)
需要添加 “C:\Python34;C:\Python34\Scripts;”到Path

步骤:
右键 我的电脑 属性 | 高级系统设置 | 环境变量
找 系统变量 | Path 并 双击 | Ctrl+C | 编辑 | Ctrl+V

安装 Selenium
cmd | pip install -U selenium

-U = --upgrade 升级安装

类似于linux命令
command -x param
容易出现的问题

环境变量
cd C:\Python34\Scripts
再安装
管理员权限
右键 管理员方式运行

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有坚持不懈的努力,才能书写出人生的精彩篇章;不畏艰难困苦,方能开创出属于自己的辉煌未来。无论遇到何种挑战,都要以积极的态度迎接,相信自己的潜力,勇往直前,奋斗不止!

只有敢于追寻梦想、勇于面对挑战的人,才能创造属于自己的辉煌人生。每一次努力都是向成功迈出的坚实步伐,不要放弃,奋斗吧,胜利就在前方!

只有拼尽全力,才能看到自己的无限潜力;只有奋斗不息,才能实现心中的伟大梦想;只有坚持不懈,才能创造属于自己的辉煌人生。相信自己,不断挑战,你一定能成为最好的自己!

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

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

相关文章

18 SAR图像和光学图像的配准算法(matlab程序)

1.简述 合成孔径雷达(synthetic aperture radar,SAR)图像配准的主要目标是对同一或不同传感器在不同时间、不同视点捕获的SAR图像进行配准。SAR因具有全天候成像能力和地物穿透能力,因此具有非常广泛的应用,如变化检测[1]、图像融合[2]、目标检测与识别[…

提取背景音乐去掉人声的方法是什么?这几个方法简单做到!

当制作视频或音频时,我们常常需要提取背景音乐并去掉人声。这一过程并不简单,需要一些专业的技巧和工具。相信有些新手小伙伴也不知道该如何操作,下面我们将分享三个方法,希望能够帮助到你。 方法一:使用记灵在线工具…

gma 2 教程(二)数据操作:1. 相关模块组成

考虑到数据读写是地理空间数据分析和应用的基础,因此将本章作为正文第一部分,以便为后续章节应用提供基础支持。本章以gma栅格/矢量数据输入输出模块(io)栅格/矢量数据的读取、创建、变换等主要操作为基础,配合gma地理…

【达摩院OpenVI】开源CVPR快速实例分割FasInst模型

团队模型、论文、博文、直播合集,点击此处浏览 一、论文&代码 论文:https://arxiv.org/abs/2303.08594 模型&代码:https://modelscope.cn/models/damo/cv_resnet50_fast-instance-segmentation_coco/summary 二、背景 实例分割旨…

2023-7-8-第十四式策略模式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

axios拦截器

在请求或响应被 then 或 catch 处理前拦截它们。 // 添加请求拦截器 axios.interceptors.request.use(function (config) {// 在发送请求之前做些什么return config;}, function (error) {// 对请求错误做些什么return Promise.reject(error);});// 添加响应拦截器 axios.inte…

PMSG永磁风机VSG网侧虚拟同步控制一次调频四机两区域系统,离散模型。

PMSGM永磁同步风机VSG虚拟同步机调频两区域系统,离散模型,非无穷大电网。 风机为网侧VSG控制。四机两区域系统,渗透率可调。当前渗透率为区域1,一台900MW同步机,区域2一台900MW同步机,永磁同步风电场容量5…

minio 升级相关问题

系列文章目录 文章目录 系列文章目录前言一、集群部署二、单机部署三、写一个启动脚本四、性能方面 前言 minio版本升级,目的主要是为了解决由 Direct buffer memory 引发的附件下载优化方案 minio version RELEASE.2021-01-16T02-19-44Z > minio version RELEA…

60题学会动态规划系列:动态规划算法第四讲

买卖股票相关的动态规划题目 文章目录 1.买卖股票的最佳时机含冷冻期2.买卖股票的最佳时期含⼿续费3.买卖股票的最佳时机III4.买卖股票的最佳时机IV 1.最佳买卖股票时机含冷冻期 力扣链接:力扣 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的…

Delphi XE编写OCX控件

1、new->other 2、Active libary 3、再次New->Other,才出现ActiveX组件内容 设置类名及参数

在 Vue 3 中使用阿里巴巴矢量图标库

在项目中基本会用到图标,比较常见的就是阿里图标库。这篇文章主要介绍如何在vue3中使用图标库。 下载并全局注册自定义图标库 手动下载阿里巴巴矢量图标库的字体文件: 在阿里巴巴矢量图标库网站上选择您需要的图标,并将其添加到购物车。然后…

CMake之CPack

文章目录 一、CPack1.用CPack打包成为deb包2.如何确定的Depends依赖包?3.如何确定编译Build-Depends?4.Cpakc打包RPM包 二、deb的简单使用三、deb包相关文件说明1.control文件2.preinst文件3.postinst文件4.prerm文件5.postrm文件 一、CPack CPack 是 CMake 2.4.2…

SpringBoot 集成 EasyExcel 3.x 实现 Excel 导出

目录 EasyExcel官方文档 EasyExcel是什么? EasyExcel注解 springboot集成EasyExcel 简单入门导出 : 实体类 自定义转换类 测试一下 复杂表头一对多导出 : 自定义注解 定义实体类 自定义单元格合并策略 测试一下 EasyExcel官方文档 …

The Sandbox 展示泰国 2023 年元宇宙生态系统

The Sandbox 举办了 2023 年泰国合作伙伴日活动,宣布创建泰国元宇宙生态系统,并对泰国创客社区的巨大合作和发展表示认可。 The Sandbox 联合创始人兼首席运营官 Sebastien BORGET 说:“我们很高兴见证 The Sandbox 泰国生态系统的发展&#…

第七章 网络安全【计算机网络】

第七章 网络安全【计算机网络】 前言推荐第7章 网络安全7.1网络安全问题概述7.1.1计算机网络面临的安全性威胁7.1.2安全的计算机网络7.1.3数据加密模型 7.2两类密码体制7.2.1对称密钥密码体制7.2.2公钥密码体制 7.3鉴别7.3.1报文鉴别7.3.2实体鉴别 7.4密钥分配7.4.1 对称密钥的…

银行软开能干到退休吗?

大家好,我是熊哥。 21世纪了好像不躺平对不起自己?很多读者都关心哪些企业适合躺平,做程序员是不是在银行可以舒舒服服干一辈子?银行招软开(软件开发)有哪些要求? 现在就来详细讲一讲。 擦亮…

数据结构--二叉树的线索化

数据结构–二叉树的线索化 用土办法找到中序前驱 typedef struct BiTNode {ElemType data; //数据域struct BiTNode *lchild, *rchild; //左、右孩子指针struct BiTnode *parent; //父节点指针 }BiTNode, *BiTree;BiTNode *p; // p指向目标结点 BiTNode *pre NULL; //指向当前…

用Postman和jmeter做接口测试有什么区别吗?

目录 1.创建接口用例集(没区别) 2.步骤的实现(有区别) 3数据用例的实现 4断言的实现 5执行 6其他 总结: 1.创建接口用例集(没区别) Postman是Collections,Jmeter是线程组&am…

web安全php基础_php之string对象详解

PHP 字符串 字符串变量用于包含有字符的值。 在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。 在下面的实例中,我们创建一个名为 txt 的字符串变量,并赋值为 “Hello world!…

MySQL数据库:数据库管理系统与安装MySQL数据库

目录 一、理论 1.数据库管理系统 2.关系型数据库 3.数据库 4.MySQL数据库 5.MySQL部署 二、实验 1.yum安装MySQL 2.配置MySQL数据库的Tab补全 三、问题 1.数据库登录报错 2.数据库密码复杂度报错 四、总结 一、理论 1.数据库管理系统 (1&#xff09…