前言

大家好,我是洋子,作为一名测试开发/软件测试工程师, 在进行软件测试的过程中,会用到测试工具去辅助测试,以提高测试工作的效率。今天就给大家介绍一下2021年软件测试领域当中的最流行,最实用的工具,一共有8类工具。本文会先介绍抓包工具与单元测试工具

工具分类

  • 抓包工具
  • 单元测试工具
  • 接口测试工具
  • UI测试工具
  • 性能测试工具
  • 测试管理工具
  • 安全性测试工具
  • AI测试工具

抓包工具

  • Charles
  • Fiddler
  • Wireshark

Charles


Charles 是一个 HTTP 代理/HTTP 监视器/反向代理,能捕获本机发送与接收到 的HTTP 和 HTTPS请求 。测试人员能够查看请求、响应和 HTTP 标头(其中包含 cookie 和缓存信息)。同时支持Map Remote,Map Local ,Rewrite 三大功能,修改本机请求的ip与端口,请求返回结果,重写HTTP Head、Body等信息

官网地址:
https://www.charlesproxy.com/

支持Mac,Windows系统

Fiddler


Fiddler 是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,但经典版只支持Windows系统,目前推出新的 Fiddler Everywhere 软件已支持Mac

官网地址:
https://www.telerik.com/fiddler

Wireshark


Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。Charles与Fiddler 只能抓取HTTP 及HTTPS 的请求,而Wireshark还可以捕获 IP,TCP,UDP 协议头与协议内容,对于分析网络层与传输层协议是一大利器

官网地址:
https://www.wireshark.org/

单元测试工具

  • Junit
  • TestNG
  • GoogleTest
  • pytest
  • unittest
  • Spock
  • Jmockit
  • gcov、lcov、gcovr
  • Coverage.py
  • EvoSuite
  • Diffblue Cover

单元测试框架

当前主流的单元测试框架包括:JUnit、TestNG、gtest、pytest、unittest;这里还会介绍一款简单易用的单元测试框架Spock。

JUnit

JUnit是一个为Java设计的开源单元测试框架,多数 Java 的开发环境都已经集成了 JUnit 作为单元测试的工具。JUnit 的最新版本是JUnit 5,它不再是一个单一的JAR 包,而是由以下3部分组成

JUnit 5 = JUnit Platform(平台) + JUnit Jupiter + JUnit Vintage

官网地址:https://junit.org/junit5/

TestNG


TestNG 是另一个为Java编程语言设计的开源单元测试框架,是一个受JUnit和NUnit启发而来的测试框架,但它引入了一些新功能:

  • 注解支持
  • 支持多线程测试执行
  • 支持数据驱动测试(使用@DataProvider)

官网地址:https://testng.org/

GoogleTest


GoogleTest(gtest)是一个跨平台的(Liunx、Mac OS X、Windows 、Cygwin 、Windows CE and Symbian ) C++单元测试框架,由google公司发布

  • 使用简单的宏定义就能编写测试用例
  • 试用例为exe可执行程序,能直接运行
  • 提供丰富的命令行参数

pytest


pytest是一个非常成熟的全功能的支持Python语言的自动化测试框架,也可以认为它一个测试管理框架,因为它不仅可以用来做单元测试,也可以结合selenium/appnium做UI自动化测试,还能集成requests库做接口自动化测试。支持参数化,可以分细粒度地控制要测试的测试用例,也可以很好的和CI工具结合,例如jenkins

官网地址:http://pytest.org/

unittest


unittest 是 Python 自带的一个单元测试框架,作为python的标准库,是其他单元测试框架的基础。unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner。无需安装,使用简便,引入包 import unittest 即可使用

官网地址:http://docs.python.org/zh-cn/3/library/unittest.html

Spock

Spock是一个为groovy和java语言应用程序来测试和规范的框架。这个框架的突出点在于它美妙和高效表达规范的语言。得益于JUnit runner,Spock能够在大多数IDE、编译工具、持续集成服务下工作。Spock的灵感源于JUnit,jMock, RSpec, Groovy, Scala, Vulcans以及其他优秀的框架形态

官网地址:https://spockframework.org/

单元测试Mock工具

在进行单元测试时,需要测试的类或函数有很多依赖,某些依赖不好构建,如Mysql或者Redis里的数据,导致在单元测试代码里无法完成构建。因此,我们需要采用Mock 技术隔离依赖对象,即模拟这些需要构建的类或者资源,提供给需要测试的对象使用

JMockit


JMockit是一个用于开发人员单元测试的Java工具。Jmockit可以和Junit或TestNG配合使用编写单元测试。主要有以下特点

  • 针对JavaEE和基于Spring的应用程序的容器外集成测试
  • 使用记录和验证语法模拟API
  • Mock API以替换实现。支持类级别整体mock和部分方法重写,以及实例级别整体mock和部分mock。可以mock静态方法、私有变量及局部方法
  • 代码覆盖率统计工具

官网地址:http://jmockit.org/

单元测试覆盖率工具

JCoCo


Jacoco是一个开源的免费Java代码覆盖工具,由EclEmma创建,其使用方法很灵活,可以嵌入到Ant、Maven中;可以作为Eclipse插件,可以使用其Java Agent技术监控Java程序等等。很多第三方的工具提供了对JaCoCo的集成,如sonar、Jenkins等

除了Jacoco,cobertura与emma这两款工具也是用来统计单元测试覆盖率

官网地址:https://www.jacoco.org/jacoco/

gcov、lcov、gcovr

gcov、lcov、gcovr都是支持C/C++语言代码覆盖率的工具。gcov是由gcc内建的代码覆盖率生成工具。lcov是gcov工具的图形前端,收集多个源文件的gcov数据,生成描述覆盖率的HTML页面。生成的结果中会包含概述页面,方便浏览。gcovr是一款针对C/C++代码覆盖率并支持以多种方式(包括列表方式、XML文件方式、HTML网页方式等)展示出来的工具。

lcov下载地址:https://github.com/linux-test-project/lcov
gcovr下载地址:https://github.com/gcovr/gcovr

Coverage.py


Coverage.py是一个度量Python语言代码覆盖率的工具。Coverage.py可以指定要通过配置文件分析哪些源文件,通过分析源代码,发现没有被测试覆盖的代码

官网地址:https://coverage.readthedocs.io

单元测试用例自动生成工具

许多开发人员认为手动编写单元测试用例耗时耗力,目前也推出了智能化自动生成单元测试的工具

EvoSuite


EvoSuite是由英国Sheffield(谢菲尔德)等大学联合开发的一种开源工具,用于自动生成测试用例集,生成的测试用例均符合Junit的标准,可直接在Junit中运行,并得到了Google和Yourkit的支持。通过使用此自动测试工具能够在保证代码覆盖率的前提下极大地提高测试人员的开发效率。但是只能辅助测试,并不能完全取代人工,测试用例的正确与否还需人工判断。
官网地址:https://www.evosuite.org/
开源代码地址:https://github.com/EvoSuite/evosuite

DiffBlue Cover

Diffblue Cover是一个自动化的单元测试编写工具,通过分析Java应用程序编写反映当前行为的单元测试,提高测试覆盖率,并帮助开发人员在将来的代码更改中发现回归缺陷。
插件开源社区版地址:https://plugins.jetbrains.com/plugin/14946-diffblue-cover–community-edition/versions

UnitAuto

机器学习单元测试平台不用编写、也不生成任何测试代码,就能完成单元测试。相比 JUnit, JTest, Mockito, Mockk 等一堆 Compiling testing 工具,其它工具需要每个方法都写一大堆测试代码,需要开发成本、需要解决测试代码的 bug、业务代码更改后需要同步修改测试代码等;UnitAuto 不需要写任何代码,直接读取方法的属性,自动注入参数,拿到返回值和类成员变量,机器学习自动化校验。

github地址:https://github.com/TommyLemon/UnitAuto

【软件测试】2021年软件测试领域常用工具总结(1)-抓包工具与单元测试工具篇相关推荐

  1. 软件测试常用的3款抓包工具

    作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,除了windows浏览器自带的抓包工具-F12和 Mac Safari 的 元素检查,方便又快捷外,在这里罗列几款我常用的抓包工具 ...

  2. xmpp协议抓包_抓包工具有哪些?大佬们常用的18款抓包工具就是这些

    最近很多同学,说面试的时候被问道,有没有用过什么抓包工具,其实抓包工具并没有什么很难的工具,只要你知道你要用抓包是干嘛的,就知道该怎么用了!一般对于测试而言,并不需要我们去做断点或者是调试代码什么的, ...

  3. 常用的几款抓包工具,你确定用过

    常用的几款抓包工具,你确定用过 Flidder Httpwatch 其他浏览器的内置抓包工具 1. Hping 2. Ostinato 3. Scapy 4. Libcrafter 5. Yersin ...

  4. 实习周记1(sdk了解、fiddler抓包、反编译工具)

    文章目录 本周知识清单 SDK为游戏提供哪些功能 什么是SDK SDK在游戏中提供的功能 SDK技术特点 简洁易用 稳定 高效 模块化开发 组件化开发 插件化开发 SDK各功能模块如何实现的 制作SD ...

  5. 正所谓:抓包抓的好,牢饭吃的饱,银白手铐准备好、抓包工具-fiddler/charles抓包工具详解

    目录 简介: Charles的基本功能使用 手机端使用charles进行抓包: 第二步,把手机按照charles的IP和端口进行配置:(手机和电脑网络在同一个wifi) 第三步,手机配对成功后,cha ...

  6. “软件测试工程师”面试复习之《HTTP协议及抓包工具Fiddler》

    供面试复习使用,内容主要来自<HTTP抓包实战 作者:肖佳>和<图解HTTP 作者:日本上野宣> 关于HTTP协议 一.web网页是如何显示出来的? 1.打开浏览器,输入url ...

  7. 常用的爆款抓包工具综合对比(选择最合适的抓包工具才是最重要的!)

    在处理IP网络的故障时,经常使用以太网抓包工具来查看和抓取IP网络上某些端口或某些网段的数据包,并对这些数据包进行分析,定位问题. 在 IMON项目里,使用抓包工具抓包进行分析的场景在EPG采集.引流 ...

  8. 网络数据采集分析工具tcpdump定义抓包过滤器

    Unix 下的一个 网络数据采集分析工具 -- Tcpdump,也就是我们常说的抓包工具. 与它功能类似的工具有 wireshark ,不同的是,wireshark 有图形化界面,而 tcpdump ...

  9. 抓包和http请求工具

    2019独角兽企业重金招聘Python工程师标准>>> ##模拟http请求 ###1.postman postman是一款chrome的插件,可以用来模拟http请求. 官网地址: ...

  10. 【工具篇】抓包中的王牌工具—Fiddler (1-环境搭建)

    导言 在现在高速发展的互联网时代,抓包工具被广泛应用在软件开发的项目中,Fiddler可谓是当下主流的抓包工具之一.测试人员用它来抓包.回放测试记录,构造发包测试用例,开发人员用来定位问题,其强大的功 ...

最新文章

  1. JavaWeb学习笔记——jsp内置对象
  2. yarn的组成部分_图解YARN工作原理
  3. html hover图片效果,CSS第9款:Imagehover.css 纯CSS打造的图片悬停效果
  4. 垂直居中 absolute 和 flex 方法
  5. Atitit ftp原理与解决方案
  6. matlab rootdir,Python cfg.ROOT_DIR属性代码示例
  7. Vue之非单文件组件介绍
  8. 螺旋数组算法[中篇]--常规数学分析
  9. 语音识别如今发展到什么阶段了?
  10. 四十五.加密与解密 AIDE入侵检测系统 扫描与抓包
  11. awk字符串匹配与传参
  12. Access 2016 - 学习笔记1 - Access中写SQL创建一个table
  13. 微信网页授权本地调试
  14. idea出现Cannot find keymap “Windows copy的报错?
  15. 饭饭的零基础神经网络学习笔记——python,numpy,scipy,matplotlib简明教程
  16. 腾讯对战平台显示版本服务器连接超时,腾讯对战平台怎么了_腾讯对战平台出现问题怎么解决...
  17. quot;多看nbsp;fornbsp;kindle3”升级包下载
  18. 寒冬季的建议:别麻木,别脱产,别放弃规划
  19. 搭建家庭影音媒体中心 --公网远程连接Jellyfin流媒体服务器
  20. css实现椭圆、半椭圆

热门文章

  1. 蓝牙ELM327连接雪铁龙世嘉,看行车信息
  2. mysql备份之ZMR应用
  3. 第四代计算机期间开始采用了,在第四代计算机期间内计算机的应用逐步进入到.docx...
  4. OpenStack依旧大行其道,但能否等来属于自己的时代
  5. 计算机考试都是60分合格吗,bim考试显示考评结果通过是达到60分了吗?
  6. App纳入监管,HTML5将大行其道?
  7. 高德地图--- 会动的小汽车(行动轨迹回放)demo效果(整理)
  8. MATLAB中 Command Window 常用的命令及功能
  9. 鸿蒙商务旅行箱,全军出击!华为智选发布16款新品:鸿蒙分布式技术来了
  10. Centos6.7安装VNC及VNC客户端用来安装oracle11g