2023最全的Web自动化测试介绍(建议收藏)
Posted 测试界的彭于晏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2023最全的Web自动化测试介绍(建议收藏)相关的知识,希望对你有一定的参考价值。
做测试的同学们都了解,做Web自动化,我们主要用Selenium或者是QTP。
有的人可能就会说,我没这个Java基础,没有Selenium基础,能行吗?测试虽然属于计算机行业,但其实并不需要太深入的编程知识!
01、行业现状
我们先看看目前的行业现状:
测试行业现在70%是以手工测试为主,那么只有20%是自动化测试,剩下的10%是性能测试。
有人可能会说,我现在做手工,我为什么要学自动化呢?我去学性能更好性能的人更少?
其实,性能的要求比自动化要求更高,那个是更高级别的了。
现在看一下手工测试工作,只有那么多,70%。但是每年的应届生却在增加。那么,你是想通过手工测试来挑战高薪吗?
根据国内普遍现象来看,手工测试的薪资没有后两者的高,这是不争的事实,后两者更具有难道和挑战。
绝大多数的情况下啊,没有绝对的啊,如果说你说你那个自动化刚工作的没有,我这个手工测试工作了4 5年的,那当然没有可比性。
那么如果说你的基础不好,你又想改变这个现状,那么你就只有学习或者培训。
【粉丝福利】整理了一些软件测试方面的资料、面试资料(接口自动化、web自动化、app自动化、性能安全、测试开发等),有需要的小伙伴可以点击文末小卡片关注我的微信公众号,无套路自行领取~
02、自动化测试入门实例
下面看几个简单的程序。这里打开eclipse,这是一个简单的一个Java的一个程序啊,能够打开一个网页。
然后登录,下单。它的流程是什么样的,运行一下。
这里用的是Chrome浏览器,打开了Chrome浏览器,它会自动去登陆,然后以及跳转到商品详情页进行一个下单。
现在已经在登录页面进行登录。登录完了之后,自动跳转到一个商品详情页,然后点击立即购买,之后跳转到确认订单页,然后直接跳转到支付中心!
然后立即支付。
支付完,那这样的自动化脚本算是自动化吗?
答案是肯定的,这是我们第一个版本,那我们再看看我们的第二个版本。
第二个版本是这样的,就说我们把所有的操作啊都封装好了,都封装成每一个方法输入,我们封装成一个方法,选择梳成一个方法,多选框也封装成一个方法,那这样的就算是自动化测试吗?
答案肯定还是肯定的。
如果说你学到这个地步,那么我只能算说,你算入门了,那什么样的才是真正的自动化测试呢?来我这里看一下,我这里打开了一个谷歌浏览器,打开了Chrome。
回过头来看,那如果我们做自动化要做到这样,那他应该是怎么去实现的呢?
首先我们要掌握我们这个自动化工程,必须要掌握自动化基础。自动化基础包括哪些东西呢?自动化用例的编写以及Selenium的优势以及原理,还有自动化环境的一个搭建。
03、Selenium基础知识概要
当我们有自动化基础的时候,我们就需要去掌握什么,掌握我们Selenum相关的知识,Selenum的一个基础知识需要有哪些呢?如下图:
常见的8大元素定位,还有扩展的东西,比如说表格,还有什么常见元素的处理,比如说你要操作一个元素,你的element点击输入信息等等,还有下拉框元素的处理,不同窗口之间的切换,这些会运用的非常多。
还有元素的拼接,元素的进阶,如果说当前页面没有出现什么元素,那如何才能出现,还有元素的一个等待。
那么当我们有Selenium基础之后,我们是不是就应该是向着更高级的去发展,那怎么去发展,那么肯定是需求到框架。
当我们要做自动化测试工程师的时候,我们一定要明白一个道理,就是说我们肯定是首先要拿到自动化的一个需求,所以说拿到需求之后,我们要怎么到我们刚刚展现的这个框架的一个开发,那中间要经历哪些途径呢?来我们看一下。
04、自动化测试需求分析
(从需求出发到自动化)
如下图,描述了自动化测试需要分析的基础步骤:
首先需求分析,需求分析完了之后要有一个用例设计,用例设计当然也包含了我们自动化用例的设计,如果说你连功能测试都做不好,那么我建议你可以先看一下自动化用例的一个设计,因为我们这个自动化用例设计和功能测试没有太大的区别,但是他会更加的详细,当我们有用例设计之后,我们是不是要看基础脚本的开发了,因为我们已经掌握了Selenium基础。
是不是要试着研究,怎么去开发到这一步,看不到任何的定位信息,我们把这一步学完之后呢,我们就干什么? 登陆和购物脚本的重构了,因为在整个的过程中,我们是做什么呢?我们拿一个登录,购物这两个流程来看。
一个登录是1个简单的例子,但是一个购物他就是一个非常复杂的一个流程,我们会把这两个例子拿过来讲那么。
这两个例子呢,最开始都是有基础脚本的,最后,通过脚本的重构,把这两个脚本进行还原。最后呢,就是封装读取,配置文件,在做自动化的时候,如果说你不会读取配置文件,那是不可能的,因为我们很多的操作都需要通过读取配置文件来完成读取配置完成之后呢,我们就可以去实现一个数据驱动。
当一个case失败了,怎样收集信息呢?很多情况下,测试用例失败后,我们并不能准确知道哪里失败了,这个时候就需要进行截图,打印执行日志等,必要的时候甚至断点调试!
总结
相比于手工测试,自动化测试具备一定的难度和挑战性,但二者必然是一个相互结合的整体。对于想要在测试行业长远发展的同学,自动化测试技能还是必不可少的。本文只是一个入门教程介绍,虽然自动化测试难度不大,但流程很长,门槛不高,但知识技能面丰富!
如果你还有许多困惑,那么我整理的视频资源和文档会是你的良师益友,或许可以给你带来一些实际性的帮助与突破【保证100%免费】
干货!全网最全的抓包工具综合对比来了..强烈建议收藏
大家好,我是二黑,这里赠送一套软件测试相关资源:
- 软件测试相关工具
- 软件测试练习集
- 深入自动化测试
- Python学习手册
- Python编码规范
- 大厂面试题和简历模板
关注我公众号:【程序员二黑】即可免费领取!
交流群:642830685
在处理IP网络的故障时,经常使用以太网抓包工具来查看和抓取IP网络上某些端口或某些网段的数据包,并对这些数据包进行分析,定位问题。
在 IMON项目里,使用抓包工具抓包进行分析的场景在EPG采集、引流模块和软终端监看模块,一般情况下EPG 采集和引流模块比较稳定,软终端监看还涉及SS5代理,这部分出问题的几率比较大,这是就有可能要现场维护人员抓包进行分析、排查、定位问题,确定是网络问题还是软件问题,如果是软件问题则要将抓回的包发给研发解决。
EPG 抓包可分为对鉴权过程、采集过程抓包验证,主要是通过通过抓包分析与IPTV 鉴 权服务器之间的TCP交互。
流媒体交互抓包可分为对组播、点播进行抓包,一般交互的协议分为IGMP、RTSP、RTMP等,组播一般是基于UDP的IGMP流,点播是基于RTP的RTSP流或基于TCP的RTMP流。
软终端抓包主要是抓取软终端与IPTV服务器交互、SS5与IPTV服务器交互的数据包,一般跟流媒体交互的报文协议差不多,也是分为组播IGMP 、点播 RTSP等协议,不过经过测试发现江苏的部分组播(可能是用户不同所致)发送的是RTSP的包。
Fiddler
Fiddler 是一个使用 C# 编写的 http 抓包工具。它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。所以 Fiddler 经常被运用在网络爬虫抓包、HTTP API 测试、手机抓包等场景。
推荐原因:
操作简单,上手容易,学习成本低。
能够抓取 HTTP/HTTPS 协议的数据包。
支持伪造 CA 证书来欺骗浏览器和服务器,从而实现解密 HTTPS 数据包。
不仅支持抓取 PC 浏览器的数据包,而且支持抓取手机数据包。
支持设置“断点”,从而能够修改 HTTP 的请求头信息以及请求体的数据。
关注公众号:软件测试资源分享 回复:工具Fiddler 自动获取工具包
Charles
Fiddler 虽然强大且好用,但是不支持 Mac OS 系统。Charles 是 Fiddler 在 Mac 系统上的代替品。目前 Charles 算是 Mac 系统上最好用的抓包工具。它使用 Java 语言开发的,所以安装以及使用之前,要事先安装好 Java 环境。另外,它还支持 Windows、Linux 等操作系统。
推荐原因:
同样操作简单,使用方便。
支持捕获 HTTP/HTTPS 的数据包
支持修改网络请求参数
支持截获网络请求并动态修改
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
Wireshark
Wireshark 也可以在各个平台都可以安装使用,不过它的功能侧重点和 Charles&Fiddler 有所不同,它主要用来抓取网络中的所有协议的数据报文,对于分析网络协议以及网络问题方面非常专业!
Wireshark 工具的优点:
-
①可以选择特定的网卡进行流量的捕获,那么就只会抓取关心的网卡经过的数据,针对性很强;
-
②可以抓取所有协议的报文,并且抓取的报文可以完整的以 OSI 七层网络模型的格式显示,可以清晰的看到客户端和服务器之间每一个交互报文,以及每一个数据包的网络各层级的详细内容显示。所以,这个工具抓包非常适合学习和分析网络协议。
-
③提供了非常强大的过滤规则。Wireshark 可以提供捕获前过滤,也可以捕获后过滤,并且过滤规则非常详细,可以实现精度和细粒度非常高的包过滤;可以结合 TCPdump 使用,分析线上服务器(Linux 系统)下抓取的数据报文,定位线上问题。
Wireshark 工具的缺点:
如果要灵活的使用它需要具备一定的网络基础,对于初学者有一定的难度;
无法分析 https 数据包,由于 wireshark 是在链路层获取的数据包信息,所以获取到的 https 包是加密后的数据,因此无法分析包内容。当然,我们可以对 https 数据包进行解密, 但是操作具有一定的复杂度,可能要消耗很多时间。
BurpSuite
Burpsuite 工具也是基于 Java 语言开发的,所以它也可以跨各平台使用,包括Windows,MacOS 及 Linux 等系统平台。
Burpsuite 可以提供抓包功能,它的工作方式同样也是在浏览器和网站之间做了代理从而实现报文截取的;也能够修改数据内容并转发的功能;甚至还可以选择使用爬虫爬下网站相关的数据…
但是,它绝对不仅仅是一款抓包工具,它集成了很多实用的小工具可以完成更加强大的功能,比如 http 请求的转发、修改、扫描等。同时这些小工具之间还可以互相协作,在 BurpSuite 这个框架下进行定制的攻击和扫描方案。
所以这个工具很多功能测试的人员会使用它进行报文抓取和篡改数据,很多安全测试人员会借用它进行半自动的网络安全审计,开发人员也可以使用它的扫描工具进行网站压力测试与攻击测试,功能作用范围更加广泛。
不过它也有自己的缺点,就是不免费!每个用户一年的费用为 299$,使用成本相对来说有点高。
F12
F12 是众多抓包工具中最简单、最轻量级的,因为它是浏览器内置的开发者工具来提供捕获浏览器的数据报文的功能。它免安装,直接打开浏览器就可以直接使用,所有使用非常好上手,适合入门级别的新手学习。
它主要针对的是 HTTP 协议和 HTTPS 协议, 可以确认我们的网络数据包的一个状态, 通过分析请求和响应报文里面的内容, 分析出来请求数据和响应数据是否正确, 定位问题是前端问题还是后端问题。
而且 F12 作为浏览器的一部分,是数据收发的一端,抓取到的 HTTPs 报文是可以得到明文数据的;不过因为只能抓当前浏览器的收发报文,层次只能是在应用层 Http(s)协议,不能抓取其他的数据报文。
虽然 F12 抓包调试也能满足我们基本的测试工作需求,但是作用面和强大性和其他的抓包工具还是有一定差距的。
TCPdump
TCPdump 是专门作用于 Linux 命令行的抓包工具,它可以提供非常多的参数来对网络数据包进行过滤和定义。
而它抓取到的报文可以直接打印在 Linux 的命令行界面,也可以进行保存成文件,并用 Wireshark 工具打开进行更加细致的分析。
1、tcpdump 的选项介绍
-a将网络地址和广播地址转变成名字;
-d将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd将匹配信息包的代码以c 语言程序段的格式给出;
-ddd将匹配信息包的代码以十进制的形式给出;
-e在输出行打印出数据链路层的头部信息;
-f将外部的Internet 地址以数字的形式打印出来;
-l使标准输出变为缓冲型形式;
-n不把网络地址转换成名字;
-t在输出的每一行不打印时间戳;
-v输出一个稍微详细的信息,例如在ip 包中可以包括ttl 和服务类型的信息;
-vv输出详细的报文信息;
-c在收到指定的包的数目后,tcpdump 就会停止;
-F从指定的文件中读取表达式,忽略其它的表达式;
-i指定监听的网络接口;
-r从指定的文件中读取包(这些包一般通过-w 选项产生 );
-w直接将包写入文件中,并不分析和打印出来;
-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议; )
Linux系统下测试
软终端在通过SS5代理服务器进行接入IPTV 环境时,可能需要到 SS5所在的代理服务器上去抓包,抓包方式就是通过TCPDUMP命令来抓取,一般我们把与IPTV网口相关的所有包都抓下来存为PCAP文件进行分析。
抓包命令为tcpdump -i eth1 -wxx.pcap,这样可以把抓过来的包保存到linux 服务器的用户登录当前文件夹下,然后通过SSH 传到本地进行分析,当然了也可以通过过滤规则抓包,详见TCPDUMP的常用命令。
总结
综上所述,测试可以用的抓包工具非常多,然而它们各有各的优势,也有对应的不足,所以根据自己的使用场景,选择最适合的抓包工具才是最重要的!
最后为方便大家学习测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……
关注我公众号:【程序员二黑】即可获取这份资料了!
推荐阅读
以上是关于2023最全的Web自动化测试介绍(建议收藏)的主要内容,如果未能解决你的问题,请参考以下文章
高效编码从手工测试转型web自动化测试继而转型成专门做自动化测试的学习路线(建议收藏)
2023最新整理!全网最全Python标准库总结(学习宝典,建议收藏)
建议收藏2023年中高级软件测试大厂面试秘籍,为你保驾护航金三银四,直通大厂