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



    目录

    前言

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

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

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

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

    比如接口测试的时候,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,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

    ​​

    ​​​​

  • 相关阅读:
    opengauss数据备份(docker中备份)
    【网络安全】网络安全协议和防火墙
    Git基础
    【顶顶通呼叫中心中间件(mod_cti 基于 FreeSWITCH)-拨号方案和路由配置】
    【Filament】立方体贴图(6张图)
    48_Collection集合
    数据结构——哈希
    华为机考入门python3--(18)牛客18- 识别有效的IP地址和掩码并进行分类统计
    固话号码认证有什么好处?固话号码认证有什么作用?
    大型项目的管理(学习)
  • 原文地址:https://blog.csdn.net/apex_eixl/article/details/134427334