如何用Renix实现网络测试自动化: 从配置分离到多厂商设备支持
引言 :
您是否也面临这些痛点?
- 同样的测试脚本在类似的场景不能重复利用,为维护大量脚本而头疼;
- 换台设备就得重新配置适配脚本;
- 脚本代码逻辑复杂,代码行数太多,易读性较差。
本篇文章主要介绍如何使用Renix高层封装API编写自动化脚本的基础知识和技巧。只要您熟悉测试流程,不需要很强的代码能力就可以顺利编写自动化测试。
本教程将以实践为导向,引导您逐步掌握Renix高层封装API Python编码的基础知识,教您如何创建测试拓扑、生成流量、执行测试并收集结果。其中涉及大量源码,满满干货,看完记得点赞哦!
Renix高层封装自动化脚本框架
1. 框架设计理念
核心原则:
测试逻辑与设备配置分离
用例参数与执行脚本解耦
多厂商设备即插即用

目录结构详解

2.1 测试用例集 (switch/)

文件规范:
用例ID遵循 用例编号命名
cfg.json 包含流量参数/断言阈值等可变数据
2.2 设备命令集 (command/)
多厂商设备命令集支持:

厂商设备命令集目录

2.3 核心库 (libraries/)

2.4. 全局配置 (testbed.json)

3、脚本逻辑执行流程

Renix高层封装四大自动化秘籍
秘籍一:1行代码唤醒历史配置
适用场景:
▸ 回归测试快速复现问题
▸ 新员工秒接手自动测试
按照我们提供的脚本目录框架将手动保存的配置的仪表文件放在文件夹目录下,使用信而泰TesterLibrary 高层封装API load_case,只需输入load_case(Path=xcfg_path)即可自动加载文件目录下的xcfg文件


秘籍二:一个脚本可通用于相似用例
让相似的用例复用一个自动化脚本。
核心思想:
"三分离原则"
- 测试逻辑(固定),脚本逻辑对应测试步骤,测试逻辑相同只是仪表配置不用的用例脚本可以实现复用
- 测试数据(可变),测试参数和数据统一存放在一个json文件中,修改数据即可进行数据的充分测试
- 设备控制(可替换),交换机路由器命令支持 ssh,telnet,console,tcp等远程通信连接方式自动下发,命令格式支持txt,excel两种类型

交换机测试命令集目录及命令内容实例如下图:


秘籍三:智能适配多环境
如何让一个脚本,适配多套测试环境和设备,
- 测试拓扑的适配
测试拓扑连接信息写入testbed.json文件中,修改对应的测试仪表,交换机设备的 ip 和实际端口即可适配不同的测试环境。

- 测试仪表速率和产品类型的适配
测试仪表产品类型分为BigTao和DarYu,不同端口速率的适配,在testbed.json文件中修改"edit_port_params"可以对测试仪的端口参数进行设置,如下图示为端口设置关闭FEC。

秘籍四:像读说明书一样读代码
让自动化脚本代码清晰可读,一行代码就是一个步骤,让自动化脚本易上手

为什么选择Renix高层封装API?

如何用Renix实现网络测试自动化: 从配置分离到多厂商设备支持的更多相关文章
- 大厂是如何用DevCloud流水线实现自动化部署Web应用的?
DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师. 官方网站:devui.design Ng组件库:ng-devui(欢 ...
- NTP时间同步 服务端 客户端 自动化安装配置
NTP时间同步 服务端 客户端 自动化安装配置 原创内容 http://www.cnblogs.com/elvi/p/7657994.html #!/bin/sh #运行环境 centos6.cent ...
- 搭建基于springmvc,ibatis的工程实现读写分离,配置分离
实现读写分离: 1.spring配置如下:spring-dataResource.xml <?xml version="1.0" encoding="UTF-8&q ...
- 通过JVM 参数 实现spring 应用的二进制代码与配置分离。
原创文章,转载请注明出处 分离的好处就不说了.说下分离的思路.通过JVM 参数-D 添加 config.path 的property 到系统中.系统通过System.getProperty(confi ...
- django之创建第7-2个项目-url配置分离
1.urls.PY分离 # -*- coding: UTF-8 -*- from django.conf.urls import patterns, include, url # Uncomment ...
- wampserver下配置虚拟主机 实现多站点支持
wampserver下配置虚拟主机 实现多站点支持 wampserver是由德国人开发,在windows环境下实现apache+php+mysql的一款集成环境软件,wampserver自带SQLit ...
- 配置用户通过Telnet登录设备的身份认证(AAA本地认证)
背景信息 用户通过Telnet登录设备时,设备上必须配置验证方式,否则用户无法成功登录设备.设备支持不认证.密码认证和AAA认证三种用户界面的验证方式,其中AAA认证方式安全性最高. 采用AAA本地认 ...
- Jenkins自动化构建配置
写在前头 我每次修改代码一点东西,都要进行一个重新发布.重新发布的流程大概如下: 将最新代码同步上传到git上面 Maven打包 mvn clean install 将最新的jar包上传到服务器上面, ...
- 利用 Puppet 实现自动化管理配置 Linux 计算机集群
随着虚拟化和云计算技术的兴起,计算机集群的自动化管理和配置成为了数据中心运维管理的热点.对于 IaaS.Paas.Saas 来说,随着业务需求的提升,后台计算机集群的数量也会线性增加.对于数据中心的运 ...
- Hadoop(MapR)分布式安装及自动化脚本配置
MapR的分布式集群安装过程还是很艰难的,远远没有计划中的简单.本人总结安装配置,由于集群有很多机器,手动每台配置是很累的,编写了一个自动化配置脚本,下面以脚本为主线叙述(脚本并不完善,后续继续完善中 ...
随机推荐
- 重磅预告 | 开源家族又添新成员!12月16日Molecule在Github、Gitee等你
随着全球开源生态的持续性发展,开源项目数量呈现指数级的增长,并逐渐覆盖全栈技术领域.袋鼠云数栈技术开源团队一直秉承着"源于开源 回馈开源"的理念,坚持以技术为核心,开源开放.不 ...
- [2025.3.9~2025.3.15 鲜花/省选后记/rain] ほら逃げられないわ
[2025.3.9~2025.3.15 鲜花/省选后记] ほら逃げられないわ 堪称大型sm游戏的whk学习... 省选完后要补whk,一开始说的是网课,后面返校那天班主任说是线下课,那咋受得了的啊,加 ...
- MySQL获取指定时间内日期
方法一 SELECT ADDDATE('2019-09-28', INTERVAL @i:=@i+1 DAY) AS DAY FROM ( SELECT a.a FROM (SELECT 0 AS a ...
- linux0.01代码阅读
代码地址: https://cdn.kernel.org/pub/linux/kernel/Historic/linux-0.01.tar.gz 代码目录: main函数: 代码中的命名解释: CMO ...
- MySQL 07 行锁功过:怎么减少行锁对性能的影响?
行锁是针对数据表中行记录的锁,是在引擎层由引擎实现的. 从两阶段锁说起 在InnoDB事务中,行锁是在需要的时候才加上的,但并不是不需要了就立即释放,而是等到事务结束时才释放,这就是两阶段锁协议. 知 ...
- C# 判断文件是否被占用
/// <summary> /// 文件是否被占用 /// </summary> /// <param name="f ...
- Cascader 支持服务端搜索
server-search-cascader 描述 vue3版本的级联选择器,支持懒加载和服务端搜索 如果您用的是react,原理一样,看代码修改即可 The cascade selector of ...
- SciTech-Health-Dental: 铸造冠+锤造冠
锤造冠: 锤造全冠是应用合金片经冲压而成的壳状全冠修复体.有无缝冠和焊接冠二种, 优点是制作简单方便. 焊接冠: 表面有焊缝,机械性能差,制作不便,已少用. 应用现代焊接与融接科技,能不能重振&quo ...
- babylon.js 学习笔记(4)
按上回继续,上节知道了如何用 『方块+三棱柱+贴图』结合起来,画一个简单的小房子,实际应用中可以把这3个打包在一起,组成1个house对象,这样更方便一些 const buildHouse = () ...
- SpringBoot--如何创建自己的自动配置
在实际开发中,仅靠SpringBoot的自动配置是远远不够的,比如要访问多个数据源,自动配置就完全无能为力了. 自动配置的本质 本质就是在容器中预配置要整合的框架所需的基础Bean. 以MyBatis ...