20231204 云原生产品测试信息整理
第一:云原生图谱
云原生:后端技术,AI、机器学习、边缘计算等领域。主要体现在云端环境、微服务架构、服务网格、Devops自动化交付、容器化部署这几个方面。
第二:云原生安全测试的内容
云原生环境下的测试需要使用一些特殊的安全测试工具和测试方法,以解决传统安全测试工具无法覆盖的盲点。云原生安全测试的内容包括以下几个方面:
-
基础架构层面:主机和基础架构安全合规测试、Docker/Kubernetes 标准合规性测试、镜像漏洞、病毒扫描测试、镜像审计测试、云上数据库和存储安全测试。
-
镜像安全方面:镜像漏洞、病毒扫描,自动实时扫描,第三方日志工具集成测试。
-
云原生网络层面:云原生网络安全测试,Macvaln、Calico、Ovs等云原生cni集成安全测试等。
-
应用和容器安全测试方面:容器病毒扫描测试、应用漏洞扫描测试。
-
应用运行时候安全:服务运行时安全测试,恶意进程扫描测试。
-
传统渗透测试手段:结合一些传统的渗透测试手段对云上的存储、数据库,操作系统开展相关渗透测试。
在云原生环境下,可以使用一些开源的安全测试工具箱,例如:Kube-bench、Kube-hunter、Clair、Falco等。
第三:关于云原生的性能验证
云原生的性能验证可以通过以下步骤来实现:
1.使用基准测试工具进行基准测试,例如ApacheBench、wrk、JMeter等。这些工具可以模拟多个用户同时访问您的应用程序,并提供有关响应时间、吞吐量和并发用户数等方面的性能指标。
2.使用容器编排工具(例如Kubernetes)在云环境中部署应用程序,并使用自动化工具(例如Jenkins)进行持续集成和持续部署。
3.使用监控工具(例如Prometheus)监控应用程序的性能指标,并将其与基准测试结果进行比较。这将帮助您确定应用程序在云环境中的性能表现,并识别任何性能瓶颈。
4.使用负载测试工具(例如Locust)模拟高负载情况下的应用程序性能,并确定应用程序在负载增加时的性能表现。
5.使用日志分析工具(例如ELK Stack)分析应用程序的日志,以确定任何潜在的性能问题,并采取适当的措施来解决这些问题。
在云的时代,使用微服务的架构。微服务的架构其实是多服务的结合体。这些服务开放不同的端口,开放多个应用程序API,这样就会导致网络的攻击面增加,带来严重的安全挑战。在这种情况下,所有的微服务都需要得到充分的保护,才能克服这种安全的威胁。
传统安全测试工具和手段无法适用于云原生环境下的安全测试,因此必须引入云原生环境下一些特殊的安全测试工具和测试方法,针对云原生网络和基础架构的特点,设计全新的安全测试方案,解决这些传统的安全测试工具无法覆盖的盲点。
第四:云原生测试工具
云原生基础架构总体安全:NeuVector
镜像审计和漏洞、病毒扫描测试:Clair、Anchore、Dagda
云原生网络安全测试:kubescape
容器运行时安全测试:Falco
容器病毒扫描测试:ClamAV
渗透测试:sqlmap、Metasploit
云原生测试工具是一些针对云原生应用程序的测试工具,以确保应用程序在容器化和微服务环境中的正确性、可靠性、稳定性和可扩展性。以下是一些常见的云原生测试工具:
1. Kubernetes测试工具:包括Kube-bench、Kube-hunter和K8s-fuzz等工具,可用于测试Kubernetes集群配置、漏洞、安全性和可靠性。
2. Istio测试工具:包括Istio-circuitbreaker和Istio-mixer等工具,可用于测试Istio服务网格中的流量管理、故障注入和可观察性。
3. Helm测试工具:包括Helm-unittest和Helm-lint等工具,可用于测试Helm Chart的正确性、可靠性和一致性。
4. Prometheus测试工具:包括Prometheus-operator和Prombench等工具,可用于测试Prometheus监控系统的性能、可靠性和准确性。
5. Envoy测试工具:包括Envoyproxy/envoy-perf和Envoyproxy/envoy-benchmark等工具,可用于测试Envoy代理的性能、可靠性和稳定性。
6. Pact测试工具:包括Pact-jvm和Pact-net等工具,可用于测试微服务之间的契约和一致性。
这些云原生测试工具可帮助开发人员和测试人员在云原生应用程序的开发和运行过程中,提高测试效率和可靠性。
原文链接:https://blog.csdn.net/toafu/article/details/130007994
云原生系统的测试需要考虑到可扩展性、系统冗余量、故障转移机制等因素。以下是一些测试方法和工具:
-
可扩展性测试:使用负载测试工具,例如Apache JMeter或Gatling,模拟高负载情况下的用户访问,并监控系统的响应时间和吞吐量。可以通过增加负载来测试系统的可扩展性,以确保系统能够处理更多的请求。
-
系统冗余量测试:使用容器编排工具,例如Kubernetes或Docker Swarm,部署多个副本的应用程序,并模拟其中一个副本失败的情况。然后,观察系统是否能够自动重新启动失败的副本,并确保系统的可用性不受影响。
-
故障转移机制测试:使用容器编排工具,例如Kubernetes或Docker Swarm,模拟节点故障的情况。然后,观察系统是否能够自动将工作负载转移到其他节点,并确保系统的可用性不受影响。
第五:云原生如何做可扩展性测试
云原生的可扩展性测试需要考虑以下几个方面:
1. 负载均衡测试:测试负载均衡器的性能和可扩展性,保证可以处理大量的请求,并能动态地将请求分发到不同的节点上。
2. 集群扩展测试:测试集群的扩展性,包括增加或减少节点时的负载均衡和故障转移能力,以及各个节点之间的通信性能。
3. 自动化测试:自动测试可以有效地避免人工测试的误差和漏洞,同时可以快速地扩展测试规模,确保测试结果的准确性和可靠性。
4. 容器编排测试:测试容器编排系统的可扩展性和自动化程度,包括集群的自动化部署、服务的扩展和缩容、容器的监控和管理等方面。
5. 数据库测试:测试云原生系统的数据库的性能和可扩展性,包括读写性能、数据一致性、备份和恢复等方面。
综上所述,云原生的可扩展性测试需要综合考虑各个方面的因素,采用系统化、自动化的测试方法,确保系统的可扩展性和稳定性。
云原生使用负载测试工具可以通过以下步骤进行测试:
1.选择一个适合你的负载测试工具,例如引用中提到的C#单元/集成/负载测试工具。
2.根据你的需求编写测试脚本,例如模拟多个用户同时访问你的应用程序。
3.使用kube-bench等工具对Kubernetes集群进行基准测试,以确保集群的安全性和性能。
4.运行负载测试脚本并监控应用程序的性能指标,例如响应时间、吞吐量和错误率。
5.根据测试结果进行优化和调整,例如增加集群节点或优化应用程序代码。
第六:云原生如何测试系统冗余量
在云原生环境下,系统冗余量测试可以通过以下步骤进行:
1. 部署多个实例:通过 Kubernetes 等容器编排系统,部署多个同一个服务的实例,这些实例之间可以分布在不同的节点、区域或者云服务商上,来实现系统级别的冗余。
2. 模拟故障:可以通过故障注入等方法,模拟某一实例或者节点出现故障的情况,观察服务的恢复能力。
3. 添加负载:通过压力测试工具,模拟大量用户请求的情况,增加对系统冗余量的考验。
4. 监测指标:通过监测系统的响应时间、CPU 和内存使用率等指标,观察系统在高负载情况下的表现。
5. 分析结果:根据测试结果,评估系统在不同故障和负载情况下的冗余能力,以及系统的可靠性和稳定性,进一步优化系统架构和配置。
第七:云原生如何测故障转移机制测试
1. 制定测试计划:确定要测试的故障转移机制,定义测试用例。
2. 设置测试环境:配置集群环境,包括容器、网络、负载均衡器等。
3. 模拟故障:通过人工干预或使用自动化测试工具,模拟各种可能的故障,如节点宕机、容器崩溃等。
4. 监控系统状态:使用监控工具或日志分析工具,对集群中的各个组件进行监控,观察其状态变化。
5. 测试故障转移:在故障发生时,观察系统的故障转移机制是否能够正确地将应用程序迁移到备用节点上,并维护应用程序的可用性。
6. 测试恢复:在故障转移后,观察系统是否能够及时恢复正常状态,并且故障转移对应用程序的性能和可用性是否有影响。
7. 分析测试结果:对测试结果进行分析,识别并记录问题,制定解决方案和优化措施。
8. 优化测试:结合测试结果,调整测试计划和测试环境,以便更好地模拟实际生产环境的情况。
总之,在测试故障转移机制时,应该从实际生产环境的角度出发,模拟各种可能的故障情况,不断优化测试计划和测试环境,以确保云原生系统的可靠性和稳定性。
第八:测试策略(结论)
云原生应用程序的可扩展性、系统冗余量和故障转移机制是云原生架构中的关键要素。以下是一些测试策略,可以测试这些方面:
1.负载测试:使用负载测试工具模拟多种负载场景,以测试应用程序的可扩展性和系统冗余量。通过这种方式,可以确定在哪种程度的负载下系统会发生崩溃。
2.故障注入:通过故意触发组件故障(如关闭一个节点或模拟网络故障)来测试您的系统故障转移机制是否能够正常工作。通过这种方式,可以确定系统在某个组件故障时是否能够自动恢复。
3.容器重启:测试容器是否能够正确地重启以确保您的应用程序能够在容器故障后正常恢复。这也是云原生应用程序的一个重要特征。
4.自动化测试:使用自动化测试工具来测试系统的可扩展性、冗余量和故障转移机制,以确保它们在未来也能正常工作。
总的来说,为了测试云原生应用程序的可扩展性、系统冗余量和故障转移机制,您需要进行一些全面的测试和评估。确保您的系统在任何情况下都能够正常运行,并且可以扩展以满足未来的需求。
测试建议:
1. 可扩展性测试:在测试过程中,要确保应用程序在面对大流量和高负载时,能够灵活地扩展。测试过程中可以使用负载测试工具来模拟大量用户访问,观察系统的负载情况,从而评估系统的扩展能力。
2. 系统冗余量测试:在测试过程中,要确保系统的可用性和稳定性。测试过程中,可以模拟组件故障,观察系统的冗余机制是否起作用,以及是否可以自动恢复失败的组件。
3. 故障转移机制测试:在测试过程中,要测试系统是否可以有效地处理故障。可以通过模拟组件故障、节点故障等方式来测试系统的故障转移机制。测试过程中可以观察到系统的自我修复机制是否起作用,并且是否可以快速地自动切换到备用节点。
4. 自动化测试:在测试过程中,可以使用自动化测试工具来模拟各种情况,从而更好地测试系统的可扩展性、系统冗余量、故障转移机制等方面。可以使用基于场景的测试策略,覆盖系统的各种功能、组件和节点,以确保应用程序在各种场景下都能正常运行。
总之,针对云原生应用程序的测试,需要综合考虑应用程序的特点和运行环境,选用合适的测试工具和策略,从而确保应用程序在云原生环境下能够稳定可靠地运行。
第九:测试工具XrunnerFree
XRunnerFree是一款免费的测试工具,可以用于自动化测试和Web应用程序测试。以下是常见的使用步骤:
-
下载和安装XRunnerFree工具。
-
创建测试项目:在XRunnerFree工具中创建一个新的测试项目并设置测试用例、测试数据和测试结果的保存路径。
-
配置测试环境:在测试项目中设置被测应用程序的地址和端口号。
-
编写测试脚本:使用XRunnerFree提供的脚本编辑器或其他编辑器编写测试脚本。
-
运行测试脚本:在XRunnerFree工具中选择要运行的测试用例,然后点击“运行”按钮开始测试。
-
分析测试结果:测试完成后,XRunnerFree会自动分析测试结果并生成测试报告。可以查看测试报告以了解测试结果和问题。
注意:以上是一般使用步骤,具体操作步骤可能因版本或环境而有所变化。查看XRunnerFree的官方文档以获取更详细的操作说明。
以下仅做摘抄标注重点信息个人记忆,数据来源:https://testerhome.com/topics/33319
XrunnerFree 的测试对象是整个应用系统,包括不限于 HTTP/HTTPS 请求、接口、中间件、数据库、服务器。通过模拟实际用户的操作行为并进行实时性能监测,查找和发现应用系统性能问题。
1.性能测试
(1)性能测试的国产化行业标准软件
- 使用数以千计的虚拟用户模拟真实用户
- 从一个控制点对系统生成准确的、可衡量和可重复的负载
- 定位系统中的性能瓶颈
(2)确保持续高并发,可重复的流程
- 模拟生产环境工作负载
- 测试广泛的应用
- 识别性能瓶颈
- 诊断根源问题
- 优化部署性能
(3)架构图
XrunnerFree 涵盖了脚本生成,场景设置,性能监控,报告生成等全流程功能。
- 压测管理器(XServer):负责性能测试的整体管理和调度。其主要功能包含: ①项目管理:创建测试项目和测试人员,设定测试人员角色和权限,并在项目中添加/删除成员。 ②用例管理:负责测试脚本的生成和调试,参数文件的维护,外部扩展包的管理。 ③任务管理:负责创建测试场景,制定测试策略,设置监控对象,以及测试计划运行。 ④数据分析:利用收集到的监控数据,进行比较,聚合分析和分类展示,并生成最终测试报告。
- 负载生成器(Load Agent):负责产生虚拟用户,运行性能测试脚本并对被测系统进行性能加压。采取分布式架构,并发执行用户场景,并将统计指标数据及日志返回到 XServer。
- 监控代理期(Monitor Agent):可以安装在服务器系统里,也可以采用无代理安装方式,监控服务器系统指标(cpu、内存、I/O、吞吐量等指标),实时将系统运行指标返回给 XServer。
2.监控/拨测
支持以下自动化测试:
- HTTP 接口监控 定时轮训检测被测系统的接口是否正常,支持告警。
- UI 或协议脚本监控 定时轮训检测被测系统的业务(使用浏览器或其他协议)是否正常,支持告警。
- 移动 APP 业务监控 定时轮训检测被测系统的业务(使用真实手机 APP)是否正常,支持告警。
- ping 监控 通过 ping 定时轮训检测被测系统是否正常。
3.代码级根源分析精准定位性能瓶颈
Pinpoint 与 XrunnerFree 集成实现以下功能:
- 系统架构拓扑自动发现
- 从最终用户响应时间到较慢的 方法和 SQL 查询的交易可追踪性
- 故障快速定位
- 各个调用环节的性能分析
- 数据分析
- 生成服务调用拓扑图
4.支撑性能中心组建方案
XrunnerFree 是一个面向全球分布式团队的协作性能测试平台,能够管理多个并发的性能测试项目,无论是在内部部署还是在云中。 通过 XrunnerFree Pro.,地理上分散的测试团队跨大规模性能测试项目进行协作,通过集中的 web 访问、资产共享、实时测试观测和调度,以优化资源利用率,节省时间。
4.支撑性能中心组建方案
XrunnerFree 是一个面向全球分布式团队的协作性能测试平台,能够管理多个并发的性能测试项目,无论是在内部部署还是在云中。 通过 XrunnerFree Pro.,地理上分散的测试团队跨大规模性能测试项目进行协作,通过集中的 web 访问、资产共享、实时测试观测和调度,以优化资源利用率,节省时间。
四、性能测试技术特点
1.跨平台能力
纯 JAVA 实现,能运行在各种不同操作系统,包括 Windows,Linux,Mac,完全适配国内信创环境。
2.仿真能力
仿真度就是性能测试工具模拟客户端向服务端下发请求与客户端的相似程度的能力,仿真度越高,测试获得的结果越可信。XrunnerFree 的协议仿真能力几乎可以做到与真实浏览器相同。与业界同类产品相比,是仿真能力最高的产品。
3.同时支持协议模拟和客户端模拟
协议模拟就是通过模拟客户端与服务端的通信协议的交互行为,而客户端模拟是性能测试工具间接的模拟客户端向服务端下发请求协议,它是通过驱动客户端界面操作,由客户端程序向服务端下发请求协议。XrunnerFree 是目前业界唯一一款同时支持两种模拟方式的性能测试工具。
4.支持多种协议能力
支持的协议类型丰富,包括:HTTP/1 (WEB/HTML/API)、HTTP/2 (WEB/HTML/API)、WebService、WebSocket (RFC 6645)、SIP (IMS)、RTSP (VoD)、RTMP、Text (Socket)、Binary (Socket)、JDBC (Database)、FTP/SFTP、JMS、XML、XMPP、IGMP (BTV)、MLD (BTV)、JAVA。是协议支持最全面的国产性能测式工具。
5.自定义协议扩展
通过 JAVA api 方便实现其他非标协议的压测脚本生成,对使用者全透明。
6.脚本录制
脚本录制支持四种模式(浏览器代理、pcap 抓包文件导入、har 文件导入、网卡实时抓包、手工创建),支持的浏览器不与具体的版本号绑定更加灵活。
7.脚本调试
脚本调试可以查看到每一步的响应码、时间以及回放与录制时间内容对比,回放完成后可以进行自动关联分析、手工关联以及页面验证等多种手段保证脚本回放的正确性。
8.支持多种并发模型
支持三大模型:线程模型、速率/秒(Caps)、在线用户数/秒,共 19 种并发模型设置,是业界支持并发模型最多的性能测试工具,适用于多种不同的场景。
9.支持高并发
性能测试:通过部署多台执行机满足高并发性能测试的需求,可以支持百万和千万级别的性能压力测试。相同的并发量,比业界知名的性能测试工具要节省资源,在 100 并发的场景下,性能指标要优 10%。
10.资源监控能力
支持监控的性能指标非常丰富,几乎包含了客户关心的所有性能指标(支持监控的性能指标数量 100+),并支持对虚拟用户分析,包括请求响应时间与事务时间、时间支持 90% 80%、第一个 Buffer 时间、 TCP 建立时间。可以帮助测试和开发人员快速的找到被测试系统的问题,通过这些指标可以精确定位性能问题,如:HTTP 的首分片时间,可以很好的区分网络问题和服务端问题。
五、核心优势
1.完全自主可控
非开源产品改造,不是基于开源产品换壳产品,全自主开发,自主可控。取得统信操作系统和麒麟操作系统的适配认证;包括各类国产 CPU 架构(龙芯、鲲鹏、飞腾、申威、兆芯、海光)的适配认证。
2.全线国产化产品支持
对国产数据库、中间件、操作系统进行了针对性适配、一站式压测以及性能基线获取,支持主流网络协议和开发框架,专门的适配开发人员和国产厂家协同开发,确保国产支持力度。
3.强大而灵活的参数化功能
具有广泛的平台支持和良好的编程支持能力,支持 Windows、Linux、Unix 等交行常见的主流平台;提供发送与接收接口,具有自定义实现接口代码,对请求消息进行处理(如加密、计算),对响应消息进行解析(如解密、提取参数、计算结果)。
4.易用性强
在有限的时间和环境内完成性能测试工作,可以使正式的压力测试工作缩短 50%以上的时间。
5.实时的性能数据捕获和呈现
具备功能丰富的服务器监控功能,能够监测系统各层面的每一部件的性能,记录整个系统所有性能数据。
6.方便快捷的性能数据分析和报告
集中收集所有在测试周期中产生的数据,并具备数据分析功能,可以查看到错误日志信息,各种指标的源数据,并自动汇总成为概要报告,而在虚拟用户行为分析上,可以统计输出每个虚拟用户汇总报告、过滤成功或失败用户定位问题,每个 URL 响应时间、成功率、失败率的统计分析报告,支持输出 DNS、TCP、首个分片、完整时间事务的各种响应时间,形成全面的诊断报告。
7.支持代码级诊断
提供应用性能和应用层次根源之间的关联,特别针对 J2EE 的诊断分析可以鉴别一系列的问题;通过实现监控与代码追踪,以便性能测试出现问题时,快速定位到被测系统代码 BUG 或性能比较慢的方法。
8.其他特点
脚本执行广泛的环境覆盖、高效的压测能力、灵活的数据驱动能力、自动化的动态关联功能、良好的脚本可扩展性、分布式压力加载模式、支持图形界面级别录制脚本和压力回放、支持音频视频的压力测试。
9.专项特色
- 视频测试解决方案:
提供 HLS/DASH/HSS 多种 HTTP 视频技术的自动化测试与性能并发测试;提供 RTMP、RTSP、SIP 等视频技术的自动化与性能并发测试,助您快速保障视频系统的高质量商用。
VoIP 测试解决方案:
提供 SIP、MSRP、H248 多种通信协议的自动化测试与性能并发测试;支持音视频媒体流发送与指标分析、IP 欺骗的端到端测试能力,助您快速保障 VoIP 系统的高质量商用。
六、运行环境
跨平台兼容适配,包括 windows、linux、国产操作系统。取得统信操作系统和麒麟操作系统的适配认证;包括各类国产 CPU 架构(龙芯、鲲鹏、飞腾、申威、兆芯、海光)的适配认证。
?第十:开源的云测试工具:
1. Selenium:可以用来测试web应用程序的自动化测试工具。
2. JMeter:用于测试性能和负载的工具,可用于测试Web应用程序、数据库或FTP服务器。
3. Appium:用于移动应用程序测试的自动化测试工具。
4. TestLink:用于管理测试用例和测试计划的Web应用程序。
5. Jenkins:持续集成工具,可以用于测试自动化和持续集成。
6. Apache OpenMeetings:在线会议工具,可用于远程会议和培训。
7. Katalon Studio:用于Web、移动和API测试的自动化测试工具。
8. Taiko:基于Node.js的自动化测试工具,专门用于测试Web应用程序。
9. Robot Framework:通用的自动化测试框架,可用于测试Web应用程序、桌面应用程序和API。
10. Taurus:用于性能测试和自动化测试的工具,可与JMeter、Gatling和Selenium等工具集成。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!