来源:知乎
1. 测试工具
1.1 iperf3
Iperf3是一款基于TCP/IP和UDP/IP的网络性能测试工具,可以用来测量网络带宽和网络质量,提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。长时间运行iperf3测试可以检测网络连接的稳定性和性能表现,并帮助开发人员确定网络系统中的瓶颈和故障。
常用参数:
-s:启动iperf3服务器端程序。
-c<server>: 用于指定iperf3客户端连接的目标服务器,如-c 192.168.0.1。
-p<port>: 用于指定iperf3服务器端和客户端之间的通信端口,默认为5201。
-u: 指定UDP协议进行测试,如果不指定则默认使用TCP协议。
-t<time>: 用于指定iperf3测试的时间长度,以秒为单位,默认为10秒。
-i<time>: 用于指定iperf3测试结果输出的时间间隔,以秒为单位,默认为1秒。
-b<bandwidth>: 用于指定iperf3测试的带宽,以bits/s为单位,默认为1Gbps
1.1.1 移植iperf3到评估板
由于HD-G2L-IOT评估板默认集成iperf3工具,无需进行移植和安装。
1.1.2 用户主机ubuntu或window下安装iperf3
ubuntu系统可执行apt命令进行安装:
sudoapt-get install iperf3
Windows系统可在iperf官网下载:
https://iperf.fr/iperf-download.php#windows
本文示例主机为windows系统。
2. 测试TCP吞吐量
2.1 查看主机和评估板IP
1. 查看用户主机和评估板IP
图5.1主机IP地址
图5.2评估板eth0 IP地址
注:需要注意的是,使用iperf工具时需保持PC机与HD-G2L-IOT评估板在同一网段内,目的是为了保证数据包的正确传输和接收。在同一网段内,PC机和HD-RK3568-IOT评估板可以直接进行通信,而不需要经过路由器或者其他设备的转发。这可以降低网络延迟和丢包的可能性,从而提高测试的准确性和可靠性。
2. 用户主机作为服务端
执行指令:
iperf3-s
图5.3服务端
3. 评估板作为客户端
执行指令:
iperf3-c 192.168.1.20 -i 60 -t 43200
图5.4客户端执行后服务端回显
2.2 测试结果
图5.5客户端测试结果
图5.6服务端测试结果
从图5.5客户端测试结果可以看出,iperf3测试时间为43200秒(12小时),每隔60秒传输一次数据,数据量在6.57GB左右,网卡的带宽速率维持在940Mbits/sec,总共传输了4.62TBytes数据量,平均带宽速率为940Mbits/sec。
3. HD-G2L-IOT
3.1 硬件参数
HD-G2L-IOT板载的外设功能:
集成1路10M/100M/1000M自适应以太网接口
集成Wi-Fi
集成3路TTL UART接口
集成1路CAN-bus接口
集成3路USB Host(2路Type A、1路白色带扣USB直插插座)
支持1路TF卡接口
支持液晶显示接口(RGB信号)
支持4线电阻触摸屏与电容屏接口
1路摄像头接口(MIPICSI)
支持音频(耳机、MIC)
支持实时时钟与后备电池
支持蜂鸣器与板载LED
支持GPIO
1路TTL UART调试串口
直流+5V电源供电
HD-G2L-CORE核心板硬件资源参数:
产品名称 | HD-G2L-CORE核心板 |
操作系统 | Linux |
加密 | 支持硬件加密,保护用户应用软件版权 |
处理器 | 瑞萨G2L |
主频 | 单核1.0GHz |
内存 | 支持1/2/4 GB DDR4 |
电子硬盘 | eMMC 8GB/16GB |
显示分辨率 | 最大可支持1080P |
LVDS | 扩展支持 |
LCD | 1路RGB |
音频接口 | 支持 |
摄像头 | 1路MIPI CSI接口 |
USB | 1路USB2.0 |
串口 | 4路 |
CAN-Bus | 1路 |
以太网 | 1路,可支持千兆或百兆 |
PCIe | / |
SD卡接口 | 2路SD3.0 |
I2C | 2路 |
PWM | 8路 |
SPI | 2路 |
ADC | 2通道12路 |
机械尺寸 | 35mm * 35mm |
注:受限于主板的尺寸与接口布局,核心板部分资源在IoT底板上引出。
第1章简单介绍软件单元测试所包含的概念,包括桩对象和测试驱动函数、测试驱动开发、软件测试贯彻始终、软件测试金字塔、单元测试在传统/敏捷开发模式中的地位、精准测试、单元测试和白盒测试,以及单元测试的FIRST原则和AIR原则。
第2章介绍软件单元测试基础知识,包括动态自动化/手工单元测试、静态自动化/手工单元测试。在动态自动化单元测试中介绍了语句覆盖、分支覆盖、条件覆盖、条件/分支覆盖、MC/DC、路径覆盖和控制流覆盖。
第3章到第5章介绍C语言、Java语言和Python语言的单元测试框架。
第3章介绍C语言动态自动化单元测试框架,包括在Windows下安装C语言运行环境、在Windows和Linux下安装编译CUnit、查看测试报告、CUnit介绍和案例。
第4章介绍Java语言动态自动化单元测试框架,包括在Eclipse中创建Maven项目和配置JUnit与TestNG运行环境、JUnit 4测试框架、JUnit 5测试框架、TestNG测试框架、测试替身、变异测试、利用EvoSuite自动生成测试用例,以及在Jenkins中配置JUnit 4、JUnit 5、TestNG和Allure。
第5章介绍Python语言动态自动化单元测试框架,包括unittest、Pytest及Python的模拟对象和变异测试工具mutpy。
第6章与第7章介绍代码覆盖率工具和代码语法规范检查工具。
第6章介绍代码覆盖率工具,包括C语言覆盖率工具gcov和lcov、Java语言覆盖率工具JaCoCo,以及Python语言覆盖率工具Coverage和pytest-cov。
第7章介绍代码语法规范检查工具,包括Java语言静态分析工具PMD、Python语言静态分析工具flake8和pylint,以及多代码语法规范检查平台SonarQube。
第8章通过两个案例详细介绍TDD。
读者可以根据自己的需求对以上内容进行选择性阅读或者全部阅读。另外,为了巩固大家的学习效果,每一章结尾都有相应的习题。
顾翔凡言:在LLM与AIGC时代,产品、研发、运维工程师是永远不会失业的。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...