模拟业务流程+构造各种测试数据,一文带你测试效率提升80%

  • 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时200+小时精选的「软件测试」资料包
  • 📢 最困难的时候,也就是我们离成功不远的时候!

目录

    • 前言
    • 最后

前言

我们做软件测试的时候,经常需要页面有点数据,特别是涉及到一些数据统计的测试用例的时候,更是需要源源不断的测试数据让前端页面生成对应的报表测试统计的数据正确性。

如果我们通过手工的方式操作业务流程来实现数据的构造的话,少量数据或许还可以,数据一多就会让测试效率直线降低了。

所以作为测试,我们经常需要用一些工具来模拟业务流程,发送一些流量,从而构造出前端页面显示的数据。

那么,可以构造出流量的工具其实很多:

比如接口测试的时候,Jmeter 工具就可以通过 CSV 的方式,读取文件进行数据构造;

比如压力测试的时候,Loadrunner,Jmeter 或者 avalanche 和 Ixia 这些工具,都可以实现不同数量级的数据构造,来实现对产品持续的压力;

比如还可以通过 SQL 脚本来直接在数据库里添加数据,构造海量数据;

当然,这些工具和方法,每一个都可以列为一个专业测试领域,比如接口测试、性能测试、大数据测试等;我们今天要讲的方法,是相对来说比较轻量级的一些工具,大家比较容易掌握,也比较容易上手,可以直接通过 Linux 命令发送流量,简单便捷迅速!

♥ Linux 下的流量小工具

要是用 Linux 的流量工具模拟用户流量,需要准备一台 Linux 作为客户端,然后连接上目标软件的服务器,网络拓扑如下:


命令都是在 Linux 里执行,从客户端发送的流量会被送到目标服务器中。

01 ➤ Hping :可以发送 ICMP,TCP,UDP 协议的流量,并且可以指定 IP 和端口

其常用参数如下:

-c / --count : 发送数据包的个数

-i /–interval : 包发送间隔时间(单位是毫秒) 缺省时间是 1 秒,此功能在增加传输率上很重

-fast 每秒发 10 个数据包,可用作 dos 攻击

-q/ --quiet: 退出什么都不会输出,除了开始结诉时间

-I --interface interface name 指定借口

-v /–verbose : 显示很多信息

-1/–icmp : ICMP 模式,此模式下,HPING 会发送 ICMP 应答报文

-2 /–udp :UDP 模式,缺省下,HPING 会发送 UDP 报文到主机的 0 端口,可以用–baseport --destport --keep 选项指定其模式

-a/ --spoof : 指定源 IP 地址,也可用于伪造 IP 攻击,防火墙就不会记录真实 IP,回应的包也接收不到了

应用实例:

1、发送普通 TCP 流量:

hping 172.16.127.10 --spoof 172.16.127.2 --quiet --setack 0 -S -p 8080 --data 1024 --count 1

第一个 IP 地址是目的 IP 地址(服务器的 IP 地址),第二个 IP 地址是指定源 IP 地址(一般就是跟服务器连接的客户端的 IP 地址);指定了目标端口为 8080,发包数量为

2、发送普通 UDP 流量:

hping 172.140.3.70 --spoof 172.14.3.70 --quiet --udp -p 5532 --data 1024 --count 100

3、构造出 DOS 攻击,比如 SYN 洪泛攻击:
hping --flood -p 2000 -a 172.20.3.90 --syn -s 2000 172.200.3.90

只发送 syn 包,造成 syn 洪范攻击的流量。或者也可以用以下命令:

hping 172.20.3.66 --setack 0 -p 5000 -S -V -i u100 --flood --rand-source

注意:hping 命令不会建立真正的连接和 server 端交互数据

在这里插入图片描述

iperf -c 222.35.11.23 -p 9999

-u :使用 udp 协议

-n :指定传输的字节数,比如:

iperf -c 222.35.11.23 -n 100000

-t 测试时间,默认 10 秒,比如:

iperf -c 222.35.11.23 -t 5

-F 指定需要传输的文件

-V 发送 IPv6 的数据,比如:

iperf -c 2001::172:16:127:11 -t 60 -p 8080 -V

应用实例:

在客户机上发送数据到服务器上,指定发送的端口为 8080
iperf -s -p 8080 //服务器机器上启动为服务器模式,并监听 8080 端口
iperf -c 172.16.127.10 -t 60 -p 8080 -n 100 //客户机上启动为客户端器模式,指定目标 IP 地址 和 端口 (172.16.127.10 和 8080 端口),发送 100 字节

03 ➤ curl :一个非常实用的、用来与服务器之间传输数据的工具,可以支持 http 和 https 协议等

常用参数:
url :需要抓取的一到多个 URLs
-v / --verbose :显示更详细的信息,调试时使用
-m/ --max-time : 限制整个 curl 操作的最长时间,单位为秒
-s / --silent: 安静模式, 不要显示进度表或错误消息;
-g : 针对 IPv6 的地址
–retry/ --retry-delay / --retry-max-time :失败重试次数/重试间隔时间/最大重试时间;
–interface: 使用指定的网卡接口访问,可以跟接口名字或者 IP 地址
***curl --interface eth0 http://aiezu.com ***
curl --interface 10.0.0.101 http://aiezu.com
-0/–http1.0 : 强制 curl 使用 HTTP 1.0 而不是使用默认的 HTTP 1.1

应用实例:

1、获取一个 http 网站的资源,指定接口
curl http://172.140.3.70/foooo/ccn1.html -v --max-time 1 --interface 172.14.3.70
2、获取一个 https 网站的资源,并使用 ipv6 的指定接口
curl -g -k https://[2001::172:16:127:11] -v --max-time 1 --interface 2001::172:16:127:2
3、配合循环一起使用
while true;do curl http://172.140.3.70/foooo/ccn1.html -v --max-time 1 --interface 172.14.3.70; done

04 ➤ dig:是一个在 Linux 命令行模式下查询 DNS 的命令,可以发送 DNS 的流量

应用实例:
1、发送 TCP 为底层协议的 DNS 请求
dig @172.16.127.10 www.a10.com -4 +time=1 +tries=3 -b 172.16.127.2 +tcp

2、发送 UDP 为底层协议的 DNS 请求
dig @172.16.127.10 www.a10.com -4 +time=1 +tries=3 -b 172.16.127.2
3、发送 IPv6 地址的 DNS 请求
dig -6 @2001::172:16:127:11 test.a10.com +time=1 -b 2001::172:16:127:2

05 ➤ wget :是 Linux 中的一个下载文件的工具,可以支持 http/https 协议 ftp/tftp 协议等

应用实例:

1、从 ftp 服务器上下载资源
wget ftp://172.16.127.10/pub/2k.html
2、从 IPv6 的 ftp 服务器上下载资源,并启动被动模式
wget -6 ftp://[2001::172:16:127:11]/pub/2k.html -P /root --no-passive(关闭主动模式)
3、使用 wget -c 重新启动下载中断的文件
wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
4、使用 wget -b 后台下载
wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz


最后

如果你想学习自动化测试,那么下面这套视频应该会帮到你很多

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....

最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了!


以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

​​

​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

窗口管理工具 Mosaic mac中文版功能特点

MosAIc mac是一种窗口管理工具,可帮助您在计算机屏幕上有效地组织和管理多个应用程序窗口。它提供了一种直观的方式来调整和排列窗口,以最大化工作效率。 MosAIc mac窗口管理软件功能和特点 窗口布局:MosAIc允许您选择不同的窗口布局&#x…

自由曲线与曲面 -计算机图形学

目录 自由曲线与曲面 函数的连续性 (1)参数连续性 (2)几何连续性 bezier 曲线 Bernstein基函数 *公式看不懂,带几个数进去看看,你就更好地可以看到这个公式的本质了 凸包性质 仿射不变性 …

Stable Diffusion WebUI使用AnimateDiff插件生成动画

AnimateDiff 可以针对各个模型生成的图片,一键生成对应的动图。 配置要求 GPU显存建议12G以上,在xformers或者sdp优化下显存要求至少6G以上。 要开启sdp优化,在启动参数加上--sdp-no-mem-attention 实际的显存使用量取决于图像大小&#…

【Selenium2+python】自动化unittest生成测试报告

前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、导…

CUDA安装

在cmd中输入nvidia-smi。显示CUDA Version:12.3,所以只能下载小于等于12.3的版本。如下图: 进这个网址:https://developer.nvidia.com/cuda-toolkit-archive 选择一个版本下载。 选择完后之后这样选择: 最后点击下载即…

clion qt导出dll给别的项目用

clion 导出dll给别的项目用,并且引入matplotcpp dll生成一个mydll的dll文件 1.先做一个简单dll的测试下 cmake_minimum_required(VERSION 3.26) project(untitled) set(CMAKE_CXX_STANDARD 11) add_library(untitled SHARED main.cpp)main.h void hello();main.cp…

如何利用PCB创建PCB封装库

如何利用PCB创建PCB封装库 首先你要活得PCB工程文件,然后利用Altium Designer将工程文件打开,如下图所示: 然后选择工具栏“设计”->“生成PCB库(P)”,如下图: 最后将生成的库文件保存到指…

三菱FX3U系列—小项目

目录 一、项目描述 二、IO口分配 三、运动功能图 四、项目程序 五、总结 一、项目描述 有些工作台,在工作台身上安装4个行程开关SQ1~SQ4,其中,SQ1、SQ2用来自动换向,当工作台运动到换向位置时,挡铁撞击行程开关&a…

长安汽车基于 Apache Doris 的车联网数据分析平台建设实践

导读:随着消费者更安全、更舒适、更便捷的驾驶体验需求不断增长,汽车智能化已成必然趋势。长安汽车智能化研究院作为长安汽车集团有限责任公司旗下的研发机构,专注于汽车智能化技术的创新与研究。为满足各业务部门的数据分析需求,…

Web服务Openlab的搭建

Web服务Openlab的搭建 网站需求: 基于域名 www.openlab.com 可以访问网站内容为 welcome to openlab!!! 给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站 基于 www.openlab.com/student 网站访问学生信息, 基于 www.openlab.…

Python框架篇(1):FastApi-快速入门

1.介绍 前言: 不管学什么语言,都应该至少掌握一个框架,方面我们后续,进行服务部署、服务对外支持等; 1.1 官网介绍 下面是来自FastAPI官网的介绍: FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架&#…

接口自动化测试框架详解

在选择接口测试自动化框架时,需要根据团队的技术栈和项目需求来综合考虑。对于测试团队来说,使用Python相关的测试框架更为便捷。无论选择哪种框架,重要的是确保 框架功能完备,易于维护和扩展,提高测试效率和准确性。今…

八大学习方法(金字塔模型、费曼学习法、布鲁姆学习模型)

在微博上看到博主发的,觉得总结很好,在此摘录:

深度学习_13_YOLO_图片切片及维度复原

需求: 在对获取的图片进行识别的时候,如果想减少不必要因素的干扰,将图片切割只对有更多特征信息的部分带入模型识别,而剩余有较多干扰因素的部分舍弃,这就是图片切割的目的,但是又由于模型对图片的维度有较…

使用boost库

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、boost实例代码二、vs配置boost库 1.linux环境2.windows环境 2.1.源码编译2.2vs配置3.3程序运行3.4将程序编译成静态库 3.4.1静态库和动态库知识点3.4.2编写…

单相过压继电器DVR-G-100-1 0~500V AC/DC220V 导轨安装

系列型号 DVR-G-100-1X3数字式过压继电器; DVR-G-100-3三相过压继电器; DVR(H)-G-100-1单相过压继电器; DVR-Q-100-3三相欠压继电器; DVR(H)-Q-100-3三相欠压继电器 一、用途 主要应用于电机、变压器等主设备以及输配电系统的继…

excel在函数中插入函数

例如,要计算RAND()1的值,其中RAND()表示取0~1之间的随机数。 插入-》函数: 选SUM函数: 点击“继续”: 将光标先放在数字1中的输入框中,然后在左边过滤出RAND函数,并且点击继续&#xff1…

jQuery Ajax前后端数据交互

ajax是用来做前后端交互的,前端使用ajax去去发送一个请求,后端给其响应拿到数据,前端做些展示。 浏览器访问网站一个页面时, Web 服务器处理完后会以消息体方式返回浏览器,浏览器自动解析 HTML 内容。如果局部有新数…

Python环境搭建与配置指南

Python 是一门优雅且健壮的面向对象解释型计算机程序编程语言,具有面向对象、可升级、可扩展、可移植、 语法简洁清晰易学、易读写、易维护、健壮性、通用性、跨平台等特点。目前广泛应用于人工智能、机器学习、 科学计算、大数据分析、图像处理、爬虫、区块链、自动…

【Android 】android13 新权限获取 读写文件权限

android13 新权限获取 参考:Android 13(API 33)读写SD卡权限的调整适配 - Mr,Han - 博客园 android在 获取文件读写权限(尤其是音视频、图片等等资源)的权限获取逻辑更换了。 必须申请如下权限: public static final String READ…