2023最全的Web自动化测试介绍
做测试的同学们都了解,做Web自动化,我们主要用Selenium或者是QTP。
有的人可能就会说,我没这个Java基础,没有Selenium基础,能行吗?测试虽然属于计算机行业,但其实并不需要太深入的编程知识!
01、行业现状
我们先看看目前的行业现状:

测试行业现在70%是以手工测试为主,那么只有20%是自动化测试,剩下的10%是性能测试。
有人可能会说,我现在做手工,我为什么要学自动化呢?我去学性能更好性能的人更少?
其实,性能的要求比自动化要求更高,那个是更高级别的了。
现在看一下手工测试工作,只有那么多,70%。但是每年的应届生却在增加。那么,你是想通过手工测试来挑战高薪吗?
根据国内普遍现象来看,手工测试的薪资没有后两者的高,这是不争的事实,后两者更具有难道和挑战。
绝大多数的情况下啊,没有绝对的啊,如果说你说你那个自动化刚工作的没有,我这个手工测试工作了4 5年的,那当然没有可比性。
那么如果说你的基础不好,你又想改变这个现状,那么你就只有学习或者培训。
02、自动化测试入门实例
下面看几个简单的程序。这里打开eclipse,这是一个简单的一个Java的一个程序啊,能够打开一个网页。

然后登录,下单。它的流程是什么样的,运行一下。
这里用的是Chrome浏览器,打开了Chrome浏览器,它会自动去登陆,然后以及跳转到商品详情页进行一个下单。

现在已经在登录页面进行登录。登录完了之后,自动跳转到一个商品详情页,然后点击立即购买,之后跳转到确认订单页,然后直接跳转到支付中心!

然后立即支付。

支付完,那这样的自动化脚本算是自动化吗?
答案是肯定的,这是我们第一个版本,那我们再看看我们的第二个版本。
第二个版本是这样的,就说我们把所有的操作啊都封装好了,都封装成每一个方法输入,我们封装成一个方法,选择梳成一个方法,多选框也封装成一个方法,那这样的就算是自动化测试吗?
答案肯定还是肯定的。
如果说你学到这个地步,那么我只能算说,你算入门了,那什么样的才是真正的自动化测试呢?来我这里看一下,我这里打开了一个谷歌浏览器,打开了Chrome。
回过头来看,那如果我们做自动化要做到这样,那他应该是怎么去实现的呢?
首先我们要掌握我们这个自动化工程,必须要掌握自动化基础。自动化基础包括哪些东西呢?自动化用例的编写以及Selenium的优势以及原理,还有自动化环境的一个搭建。
03、Selenium基础知识概要
当我们有自动化基础的时候,我们就需要去掌握什么,掌握我们Selenum相关的知识,Selenum的一个基础知识需要有哪些呢?如下图:

常见的8大元素定位,还有扩展的东西,比如说表格,还有什么常见元素的处理,比如说你要操作一个元素,你的element点击输入信息等等,还有下拉框元素的处理,不同窗口之间的切换,这些会运用的非常多。
还有元素的拼接,元素的进阶,如果说当前页面没有出现什么元素,那如何才能出现,还有元素的一个等待。
那么当我们有Selenium基础之后,我们是不是就应该是向着更高级的去发展,那怎么去发展,那么肯定是需求到框架。
当我们要做自动化测试工程师的时候,我们一定要明白一个道理,就是说我们肯定是首先要拿到自动化的一个需求,所以说拿到需求之后,我们要怎么到我们刚刚展现的这个框架的一个开发,那中间要经历哪些途径呢?来我们看一下。
04、自动化测试需求分析
(从需求出发到自动化)
如下图,描述了自动化测试需要分析的基础步骤:

首先需求分析,需求分析完了之后要有一个用例设计,用例设计当然也包含了我们自动化用例的设计,如果说你连功能测试都做不好,那么我建议你可以先看一下自动化用例的一个设计,因为我们这个自动化用例设计和功能测试没有太大的区别,但是他会更加的详细,当我们有用例设计之后,我们是不是要看基础脚本的开发了,因为我们已经掌握了Selenium基础。
是不是要试着研究,怎么去开发到这一步,看不到任何的定位信息,我们把这一步学完之后呢,我们就干什么? 登陆和购物脚本的重构了,因为在整个的过程中,我们是做什么呢?我们拿一个登录,购物这两个流程来看。
一个登录是1个简单的例子,但是一个购物他就是一个非常复杂的一个流程,我们会把这两个例子拿过来讲那么。
这两个例子呢,最开始都是有基础脚本的,最后,通过脚本的重构,把这两个脚本进行还原。最后呢,就是封装读取,配置文件,在做自动化的时候,如果说你不会读取配置文件,那是不可能的,因为我们很多的操作都需要通过读取配置文件来完成读取配置完成之后呢,我们就可以去实现一个数据驱动。
当一个case失败了,怎样收集信息呢?很多情况下,测试用例失败后,我们并不能准确知道哪里失败了,这个时候就需要进行截图,打印执行日志等,必要的时候甚至断点调试。
总结
相比于手工测试,自动化测试具备一定的难度和挑战性,但二者必然是一个相互结合的整体。对于想要在测试行业长远发展的同学,自动化测试技能还是必不可少的。本文只是一个入门教程介绍,虽然自动化测试难度不大,但流程很长,门槛不高,但知识技能面丰富!
Python接口自动化测试零基础入门到精通(2023最新版)
相关文章:
2023最全的Web自动化测试介绍
做测试的同学们都了解,做Web自动化,我们主要用Selenium或者是QTP。 有的人可能就会说,我没这个Java基础,没有Selenium基础,能行吗?测试虽然属于计算机行业,但其实并不需要太深入的编程知识&…...
Unity 控制物体透明度变化
1.需求 给物体绑定一个脚本,这个脚本实现物体的透明度渐变变化,并且可以重置回原来的颜色。物体为Unity自带的材质Shader为Standard。 2.代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Transpare…...
django及DRF流程源码分析
Django执行流程: 1.nginx作为接入层,通过反向代理,监听80端口获取请求连接 2.将请求交给wsgi server 3.wsgi server调用django的wsgi.py 处理请求 4.WSGIHandler的__call__函数就是整个逻辑处理流程 5.WSGIHandler __init__中的加载中间件,对request对象…...
Ajax入门-Express框架介绍和基本使用
电脑实在忒垃圾了,出现问题耗费了至少一刻钟time,然后才搞出来正常的效果; 效果镇楼 另外重新安装了VScode软件,原来的老是报错,bug。。; 2个必要的安装命令; 然后建立必要的文件夹和文件&…...
Linux加强篇001-部署Linux系统
目录 一、前言 1.1准备工具 1.2安装配置VM虚拟机 1.3安装软件 1.4系统初始化进程 1.5重置root密码 二、巩固练习 1.为什么建议读者在下载系统文件后先进行校验而不是直接安装呢? 2.使用虚拟机安装Linux系统时,为什么要先…...
LeetCode算法题解(动态规划)|LeetCode343. 整数拆分、LeetCode96. 不同的二叉搜索树
一、LeetCode343. 整数拆分 题目链接:343. 整数拆分 题目描述: 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入…...
好多年没更新了
好多年没更新了,哈哈,各位好。 感恩一切,感恩有你们。...
DOM文档对象模型
前言 DOM(Document Object Model) 文档对象模型,是W3C制定的标准接口规范,是一种处理HTML和XML文件的标准API。简单来说DOM就是操作网页的api和接口。 一、Node类型属性 1.判断节点类型 nodeType 整数返回值 9 1 3 2 <div id"one">我…...
【Django-DRF】多年md笔记第5篇:Django-DRF的Request、Response和视图详解
本文从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计REST API,通过使用Django来实现一个REST API为例,明确后端开发REST API要做的最核心工作,然后介绍Django REST framework能帮助我们简化开发REST API的工作。 Dj…...
mongo DB -- aggregate分组查询后字段展示
一、分组查询 在mongoDB中可以使用aggregate中的$group操作对集合中的文档进行分组,但是查询后的数据不显示其他字段,只显示分组字段 aggregate进行分组示例 db.collection.aggregate([{$group: {_id: "$field"}},]) 查询后显示 展开只显示两个字段 二、显示所有字段…...
禁止linux shell 终端显示完整工作路径,如何让linux bash终端不显示当前工作路径
在操作linux时,默认安装的linux终端会显示当前完整的工作目录,如果目录比较短还是可以接收,如果目录比较长,就显得比较别扭,操作起来不方便,因此需要关闭这种功能。 要关闭这个功能,请按如下步骤…...
error: ‘ui/ui_uimainwindow.h‘ file not found
问题:在刚好创建的Qt Designer Form Class类中,发现类的.cpp文件中有ui头文件未找到 原因:.ui文件没有被识别到,或者.ui文件不存在,导致ui头文件未创建而报错。 解决:若修改了.ui文件,随手ctrls…...
【高级网络程序设计】Week2-3 HTML
一、The Basics 1. HTML&HTML file HTMLMarkup languageHyper Text Markup LanguageHTML fileText file with markup tags.htm/.html extension Create an html file Open an editor Type: <html><head><titile><body> Save it as .html Open i…...
来聊聊JVM中的类加载过程以及双亲委派模型(学习Java必知内容)
文章目录 1. 类加载过程加载验证准备解析初始化 2. 双亲委派模型一个类的加载流程双亲委派模型的优点 总结 1. 类加载过程 在整个 JVM 执行过程中, 和我们程序员关系最密切的就是类加载的过程, 所以接下来我们来看下类加载的执行流程. 对于一个类来说, 它的生命周期是这样的:…...
scala的类介绍
scala的类、抽象类、接口、对象 class :类, 通过new关键字来实例化,每次实例化都会创建一个新的对象;用来定义普通的类。object:对象,用来定义一个单例对象的,它只有一个实例,且在程序运行期间…...
1.Gin 介绍
1.Gin 介绍 介绍 Gin 是一个 Go (Golang) 编写的轻量级 http web 框架,运行速度非常快,如果你是性能和高效的追求者,我们推荐你使用 Gin 框架。 Gin 最擅长的就是 Api 接口的高并发,如果项目的规模不大,业务相对简单&a…...
华三无线控制器WX2540H配合准入做Portal认证
数据通信 - 建设篇 - 无线 第四章 华三无线控制器WX2540H配合准入做Portal认证 数据通信 - 建设篇 - 无线系列文章回顾华三无线控制器WX2540H配合准入做Portal认证前言其他配置优化参考来源系列文章回顾 第一章 华三无线控制器配置本地转发 第二章 华三无线控制器配置802.1X认…...
OAK相机通过振动测试!
编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 Hello,大家好,这里是OAK中国,我是助手君。 当…...
使用Pytorch从零开始构建RNN
在这篇文章中,我们将了解 RNN(即循环神经网络),并尝试通过 PyTorch 从头开始实现其中的部分内容。是的,这并不完全是从头开始,因为我们仍然依赖 PyTorch autograd 来计算梯度并实现反向传播,…...
Linux之实现简易的shell
1.打印提示符并获取命令行 我们在使用shell的时候,发现我们在输入命令是,前面会有:有用户名,版本,当前路径等信息,这里我们可以用环境变量去获取: 1 #include <stdio.h>2 #include <stdlib.h>…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...
uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...
pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...
