CN113064780B - 一种基于路由器产品的自动化测试系统及方法 - Google Patents
一种基于路由器产品的自动化测试系统及方法 Download PDFInfo
- Publication number
- CN113064780B CN113064780B CN202110292647.6A CN202110292647A CN113064780B CN 113064780 B CN113064780 B CN 113064780B CN 202110292647 A CN202110292647 A CN 202110292647A CN 113064780 B CN113064780 B CN 113064780B
- Authority
- CN
- China
- Prior art keywords
- test
- service
- data
- library
- environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及路由器测试领域,特别涉及一种基于路由器产品的自动化测试系统及方法。其中测试系统包括WAN端上层业务测试环境、ATTRobot测试框架、底层,ATTRobot测试框架与WAN端上层业务测试环境集成;WAN端上层业务测试环境包括工控机、WAN端设备,ATTRobot测试框架包括五个子系统和两个WAN端关键字封装模块,ATTRobot测试框架包括分为通信层、用例应用层、业务接口层,工控机通过通信层与ATTRobot测试框架集成通信,底层通过业务接口层与ATTRobot测试框架集成通信。本发明高内聚低耦合,不需依赖过多的接口,可实现自行开发测试库有利于扩展业务功能支撑测试需求;采用用例分层设计,层次结构分明、清晰,有利于用例脚本维护,同时提高了重用利用率。
Description
技术领域
本发明涉及路由器测试领域,特别涉及一种基于路由器产品的自动化测试系统及方法。
背景技术
目前现有的ATOP老平台一直以来只能支撑各产品线路由器单业务webUI功能自动化测试,该平台采用的是TCL脚本语言开发,tcl语言本身扩展包不够丰富,不能满足多种维度领域业务测试需求。编写用例脚本采用的是excel表格录入,产生数据冗余太多,缺乏语法错误智能信息提示,维护成本大。WebUI端界面元素控件封装用的是TCL语言代码封装,不利于维护及业务功能扩展,缺乏用例分层设计思想。写用例脚本时不清楚有哪些功能关键字,需要研读平台KC类文件函数代码,要有编码能力,才能弄懂函数有哪些参数、功能用途、如何使用,这给自动化测试人员开发用例脚本效率低。
WAN端上层业务测试环境系统Centos6.2版本32位、内核2.6,性能方面较差,长期跑自动化测试偶尔会出现系统挂掉;采用低端无线网卡W522U传输速率低,满足不了业务需求,系统又不能兼容高端U12无线网卡驱动;环境缺失IPv6网络接入连接测试。
旧平台存在的弊端:
(1)旧平台只支持Web端功能自动化测试,业务功能比较单一,满足不了多种不同业务测试需求;
(2)用例脚本采用的是excel表格录入,产生数据冗余太多,缺乏语法错误智能信息提示,维护成本大;
(3)编写用例脚本还需编码能力,研读平台的代码弄懂函数功能用法才能知道提供了哪些关键字,使用什么参数,如何使用;
(4)缺失IPV6环境接入PPPoEv6和DHCPv6连接自动测试以及IPV6流量自动化测试;
(5)虚拟机采用centos系统6.2版本32位,性能较差,同时只支持低端无线网卡W522U型号,传输速率低,无法兼容高端无线网卡U12型号;
(6)web UI端界面元素控件使用tcl语言封装界面类,平台框架低内聚高耦合,不利于维护及业务扩展功能;
(7)平台缺失telnet登录方式实现数据通信交互;
(8)串口通信易用性体验一般,代码逻辑设计混乱,可读性差。
发明内容
本发明提供一种新型自动化测试框架测试系统架构,支持无线路由器产品pc端的web、手机端APP、网络终端通信、流量测试、无线连接测试、IPv6接入测试等多维度领域方向自动化测试系统架构平台,能满足多种不同的维度业务领域测试需求。
本发明提供一种基于路由器产品的自动化测试系统,包括WAN端上层业务测试环境、ATTRobot测试框架、底层,所述ATTRobot测试框架与WAN端上层业务测试环境集成;
所述WAN端上层业务测试环境包括工控机、WAN端设备,所述工控机创建有两个虚拟主机分别为服务端和客户端,工控机创建有虚拟网卡分别桥接到两个虚拟主机eth0接口,多个所述WAN端设备桥接到两个虚拟主机的接口;
所述ATTRobot测试框架包括五个子系统和两个WAN端关键字封装模块,五个子系统包括自动配置物理机网卡系统、无线自动化连接系统、串口通信自动化系统、流量性能自动化系统、IPv6网络接入自动化系统,两个所述WAN端关键字封装模块包括WAN端基础关键字、WAN端服务器指令资源;
所述底层包括Python Lib库、协议栈;
所述ATTRobot测试框架包括分为通信层、用例应用层、业务接口层,所述工控机通过通信层与ATTRobot测试框架集成通信,所述底层通过业务接口层与ATTRobot测试框架集成通信。
作为本发明的进一步改进,所述WAN端设备包括上级路由器、无线路由器、移动终端、平台管理系统,所述工控机包括有上级路由器网卡、LAN网卡和WAN网卡,所述LAN网卡、WAN网卡分别桥接到虚拟主机客户端eth1接口和服务端eth1接口,虚拟主机服务端eth2接口桥接上级路由器网卡,虚拟主机服务端eth2接口新增eth2:1接口接入上级路由器,所述无线路由器的LAN口和WAN口分别接入工控机的LAN网卡和WAN网卡,所述移动终端接入工控机的USB接口,所述平台管理系统安装部署在工控机上。
作为本发明的进一步改进,所述通信层包括:
SSH协议模块:远程登录到上层业务虚拟主机服务端下发对应服务配置文件,下发启动服务指令把对应的服务进程启用或禁用,并提供给被测产品需要的服务数据进行功能检测;
telent模块:实现测试框架远程登录到被测产品进行发送及接收数据;
Serial模块:实现串口登录到被测产品进行发送及接收数据通信交互。
作为本发明的进一步改进,所述用例应用层存放有工程测试用例,所述工程测试用例通过业务接口层对测试产品业务逻辑处理执行测试;
所述工程测试用例包括五层目录结构:
测试套件层:存放的产品模块功能测试用例,前提条件加载流程层管理、元素层管理、测试数据、WAN端服务器指令资源、环境初始化资源等封装的资源文件以及ChariotLibrary库;
流程层管理:封装产品模块功能界面配置操作流程步骤及异常检测的关键字,前提条件加载元素层管理、服务端API等封装的资源文件;
元素层管理:按产品模块功能布局划分,封装各功能界面元素控件属性,前提条件加载Selenium2Library库、AppiumLibrary库、测试数据等封装的资源文件;
测试数据:存放公共数据及通用变量,提供给测试用例全局调用;
服务端API:存放WAN端基础关键字、WAN端服务器指令参数、WAN端服务器指令资源、环境初始化资源等资源文件,里面封装WAN端上层业务测试环境的服务指令关键字以及业务操作关键字,包含SSHLibrary库、Collections库、String库、XML库、DateTime库、NetConfigLibrary库。
作为本发明的进一步改进,所述业务接口层包括测试库,所述测试库包括:
SerialLibrary库:引用SocketServer多线程技术开发Send Msg关键字与串口服务端对接并通过BAT批处理脚本提供带有菜单式界面方便用户使用操作串口服务端;
ChariotLibrary库:引用加载IxChariot.dll库结合python与TCL语言混合编程扩展关键字Execute Chariot Throughput Test支撑IPv4和IPv6流量性能测试;
NetConfigLibrary库:提供初始化设置工控机windows系统环境物理网卡IP地址、网关、DNS地址;引用winreg包查找注册表网卡设备名,引用netifaces包获取网卡的IP地址,引用subprocess的Popen方法通过管道下发netsh interface命令拼装参数设置网卡IP地址、网关、DNS地址。
本发明还提供一种基于路由器产品的自动化测试方法,包括系统整体运行流程,所述系统整体运行流程包括无线自动化连接流程、串口通信自动化流程、流量性能自动化流程、IPv6网络接入自动化流程;
所述系统整体运行流程具体包括以下步骤:
S1.测试框架加载需要的测试库NetConfigLibrary及环境初始化资源文件、WAN端服务器指令资源等,调用测试库的关键字接口及资源文件数据、用户关键字;执行测试集环境初始化脚本设置远程虚拟主机环境网卡IP地址及工控机物理网卡IP地址、网关以及初始化登录虚拟主机;
S2.使用SSHLibrary测试库关键字Switch Connection切换目标虚拟主机下发指定的配置文件并启动服务进程,再切换通过selenium和appium调用底层驱动webdriver分别控制浏览器、手机APP端,引用测试库Selenium2Library对平台管理系统、无线路由器的前端界面和引用测试库AppliumLibrary对手机APP端等进行模拟用户事件配置操作;
S3.执行流量性能自动化测试:由PC控制端通过socket通信方式控制远程虚拟主机远端建立连接,负责远程虚拟客户机与远程虚拟主机服务端进行发送、接收流量数据包;使用ChariotLibrary测试库的Execute Chariot Throughput Test关键字分别构造TCP、UDP、TCP6、UDP6等协议数据流以及数据包大小,进行上行、下行、上行+下行三种策略吞吐量性能测试;
S4.执行无线连接测试:使用SSHLibrary测试库关键字Switch Connection切换到目标虚拟主机,采用封装好的WAN端服务端资源的U12无线网卡用户关键字下发扫描AP指令,再根据扫描到AP热点,执行下发配置无线网卡参数并与目的AP热点建立连接;
S5.如需要在虚拟主机环境检测事件时,调用WAN端服务器指令资源文件用户关键字下发指令执行检测数据;
S6.ATTRobot测试框架通过SSH管道通信把远程虚拟主机回显的数据传送过来并读取数据进行清洗处理,提取匹配指标项关键词用来做断言判断,把断言的结果进行解析并传参到测试报告模板文件,然后生成测试报告及日志文件;测试用例执行结束后,继续清理还原当前用例模块环境以及测试集环境清理,还原虚拟主机原始的环境;如果是串口通信交互,调用Serial测试库关键字向串口服务端工具发送指令,由服务端转发消息给被测产品,最后由被测产品做出响应数据回显传送返回给客户端业务逻辑处理,同时串口服务端记录串口日志信息到文本文件保存。
作为本发明的进一步改进,所述无线自动化连接流程包括以下步骤:
a1.测试框架加载需要的测试库NetConfigLibrary及环境初始化资源文件、WAN端服务器指令资源等,同时执行测试集环境初始化脚本设置远程虚拟主机环境网卡IP和无线wlan0接口IP地址及工控机物理网卡IP地址、网关以及初始化登录虚拟主机;
a2.若用例需要桥接上级路由器,使用SSHLibrary测试库关键字SwitchConnection切换目标虚拟主机下发指定的配置文件设置上级路由器无线数据并启动服务进程;否则不需下发指定配置文件设置上级路由器;
a3.通过selenium和appium调用底层驱动webdriver分别控制浏览器、手机APP端,引用测试库Selenium2Library和AppliumLibrary分别对无线路由器、手机APP端等进行模拟用户事件配置操作无线模块前端数据;
a4.无线扫描、连接测试:
a41.wpa_cli命令封装在U12 Scan和U12 Cfg关键字,执行用户关键字U12Scan根据传参无线接口、SSID名等,自动扫描周边目的AP热点并读取扫描后的数据进行判断匹配,如成功扫描并执行关键字U12 Cfg进行下发指令,进行无线参数设置并连接到热点AP,若扫描不成功,则断言失败直接把结果记录在测试报告及日志文件;
a42.如无线成功连接到热点AP,则执行关键字Ping诊断检测虚拟主机客户端是否能Ping通服务端主机,把Ping的数据结果回显传送给测试框架平台并读取数据指标项进行数据清洗提取关键词丢包率值进行断言是否Ping成功还是失败;如无线连接失败,则断言失败直接把结果记录在测试报告及日志文件;
a5.生成最终的测试报告和日志文件,并清理用例环境以及测试集环境还原。
作为本发明的进一步改进,所述串口通信自动化流程包括以下步骤:
b1.当服务端开启时,后台打开串口,一边进入循环监听客户端事件,一边循环读取被测设备串口数据写入文本文件;
b2.客户端使用关键字Send Msg传参指令、IP地址为127.0.0.1、端口号为12345向服务端目的端口发送消息时,中间件Socket获取消息后,并转发给后端设备后并读取串口回显的数据,再返回给客户端;
b3.客户端读取返回的数据进行数据精准处理,提取关键词存储在变量里进行断言结论。
作为本发明的进一步改进,所述流量性能自动化流程包括以下步骤:
c1.前提条件进行环境初始化设置工控机网卡及虚拟主机网卡IP、网关地址,调用驱动模块控制PC端Web浏览器或者手机APP端进行前端配置操作,然后加载ChariotExt.dll动态链接库,循环构造协议数据流运行测试,通过计算每条流运行时间和每条流平均吞吐量值进行累加,再通过公式精准得出总和值,最终得出平均吞吐量值,执行完后,会自动把每条测试点的测试数据log日志和tst格式文件保存到指定的目录下提供查看测试数据,最后释放资源,把获取的平均吞吐值回显传送给测试框架平台进行数据清洗处理,提取吞吐量关键指标值,采用公式误差率=(实际值-理论值)/理论值x100%自动得出误差率值进行断言判断结论。
作为本发明的进一步改进,所述IPv6网络接入自动化流程包括以下步骤:
d1.测试框架平台加载测试库、资源文件,并进行测试集环境初始化设置工控机物理LAN端网卡IP以及虚拟主机网卡eth1接口IP、网关、路由;
d2.若执行产品IPv6网络PPPoEv6拨号连接测试,使用SSHLibrary测试库关键字Switch Connection切换目标虚拟主机服务端,通过平台封装好的关键字PPPoE Cfg调用虚拟主机PPPoEv4脚本配置PPPoE服务并同时启动PPPoE服务,再利用封装好的关键字PPPoEv6Cfg调用虚拟主机PPPoEv6脚本配置RADVD服务;若执行产品IPv6网络自动获取,则使用封装好的关键字DHCP Cfg调用虚拟主机DHCP脚本配置DHCP服务并同时启动DHCP服务,再利用封装好的关键字DHCPv6 cfg调用虚拟主机DHCPv6脚本文件自动配置RADVD和DIBBLERR接口名,并同时启动RADVD和DIBBLER服务;
d3.地址分配三种模式方法:通过测试框架关键字PPPoEv6 Cfg和DHCPv6Cfg调用虚拟主机PPPoEv6和DHCPv6脚本文件进行传参-mf、-of、-af设置值并自动配置RADVD服务文件:
s31.当参数-mf为on,-of为on,-af为off时,自动配置RADVD有状态模式;主机直接从DIBBLER服务获取全部的地址信息及其它配置信息;
s32.当参数-mf为off,-of为on,-af为on时,自动配置RADVD无状态模式;主机从路由通告信息中获取地址信息,并从DIBBLER服务获取其它配置信息;
s33.当参数-mf为off,-of为off,-af为on时,自动配置RADVD完全无状态模式;DIBBLER服务不用于分配地址,主机通过路由通告信息获取地址以及DNS地址;
d4.切换到被测产品并通过selenium和appium调用驱动模块执行控制操作无线路由器或手机APP端模拟用户行为事件配置操作,当选择联网方式为PPPoEv6时,自动触发虚拟主机服务端ipv6-up脚本执行配置RADVD和DIBBLER服务,并同时启动RADVD和DIBBLER服务进程;当选择联网方式为自动获取时,不会触发ipv6-up脚本;
d5.自动远程登录虚拟主机客户端,执行关键字Ping6向目的服务端进行Ping6诊断测试,并把回显的数据传送到测试框架并读取数据及数据清洗处理,提取丢包率关键指标作为检测结果并生成测试报告及日志文件,用例环境清理,最后执行脚本进行测试集还原原始的环境。
本发明的有益效果是:
(1)高内聚低耦合,不需依赖过多的接口,可实现自行开发测试库有利于扩展业务功能支撑测试需求;
(2)采用用例分层设计,层次结构分明、清晰,有利于用例脚本维护,同时提高了重用利用率;
(3)使用关键字驱动和数据驱动方法编写用例脚本,测试框架提供加载测试库能够自动导出对应的关键字以及关键字使用方法描述说明、参数、举例等。不需要研读平台代码,提高了用例脚本编写效率,使无编程经验手工测试人员只需掌握测试库的关键字用法,了解用例分层思想就会写出测试用例脚本;
(4)串口服务端工具提供带有菜单式界面方便用户使用操作串口服务端,给用户带来很好的体验操作,同时兼容新、旧平台使用;
(5)构建新的WAN端上层业务测试环境虚拟主机,系统升级为centos7.8版本64位,性能比原来的旧平台的测试环境Centos6.2系统32位提升,虚拟机部署服务及shell脚本配置文件等继承老平台ATOP的虚拟机环境应有的功能服务,同时新平台测试框架兼容对接上层业务测试环境数据通信交互;
(6)虚拟机兼容高端U12型号无线网卡驱动,提高无线传输速率;上层业务测试环境构建IPv6网络接入,覆盖业务测试需求;
(7)框架内置有自带telnet测试库关键字,满足telnet远程登录通信数据交互。
附图说明
图1是本发明基于路由器产品的自动化测试系统架构图;
图2是本发明中系统整体运行流程图;
图3是本发明中无线自动化连接流程图;
图4是本发明中串口通信自动化流程图;
图5是本发明中流量性能自动化流程图;
图6是本发明中IPv6网络接入自动化流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
一、发明目的:
(一)测试框架:
(1)引进robot frame work框架进行二次开发重构形成高内聚低耦合,支撑不同的维度测试领域方向业务;
(2)采用数据驱动及关键字驱动直接在平台进行,使用用例分层思想编写用例脚本以及提供了语法错误智能提示,方便人员定位哪里脚本语法错误;
(3)测试框架提供前端可查询测试库的关键字详情用法及脚本举例,不需看平台代码就能知道有哪些测试库及关键字用法;
(4)测试框架支持自行扩展开发测试库,满足业务功能测试需求;
(5)在测试框架使用关键字封装上层业务测试环境服务指令用户关键字方法,用来处理参数化和业务逻辑达到等同ATOP老平台KC类函数功能逻辑处理;
(6)针对旧的串口工具进行改进创新,代码重构,增强可读性及逻辑设计,同时兼容新、旧平台使用,提供带有菜单式界面方便用户使用操作串口服务端,给用户带来很好的体验操作。
(二)构建WAN端上层业务测试环境
(1)构建新的WAN端上层业务测试环境虚拟主机,系统升级为centos7.8版本64位,虚拟机部署服务及shell脚本配置文件等继承老平台ATOP的虚拟机环境应有的功能服务,同时新平台测试框架兼容对接上层业务测试环境数据通信交互;
(2)虚拟机兼容高端U12型号无线网卡驱动,提高无线传输速率;
(3)上层业务测试环境构建IPv6网络接入,满足业务测试需求。
二、具体技术方案:
如图1所示,自动化测试系统架构主要包含:构建WAN端上层业务测试环境和ATTRobot测试框架。本技术是全新的测试框架ATTRobot平台,基于robot framework开源框架基础上进行二次开发重构,与旧ATOP平台是完全不同的测试框架;上层业务虚拟环境构建是全新的构建。
ATTRobot测试框架改进点:构建全新的上层业务测试环境和全新的测试框架。ATTRobot测试平台跟老平台ATOP完全不同,ATTRobot测试平台是全新的框架,没有引用现有的老平台ATOP技术模块构成。
ATTRobot全新平台框架增加五个子系统和两个WAN端关键字封装:自动配置物理机网卡(NetConfigLibrary)、无线自动化连接(调用WAN端基础关键字接口)、串口通信自动化(独立的串口服务端工具集成ATTRobot平台和SerialLibrary库组成)、流量性能自动化(ChariotLibrary)、IPv6网络接入自动化(调用WAN端服务器指令资源关键字)、和WAN端基础关键字、WAN端服务器指令资源。
WAN端上层业务测试环境改进点:构建上层业务环境是升级到centos7.864位虚拟系统环境,而老平台的上层业务环境是基于centos6.2版本32位系统。新的上层业务虚拟环境继承了老平台的上层业务环境应有的所有的服务环境,并且增加扩展了IPV6接入拨号服务(比如IPV6的PPPOEV6、DHCPV6);旧平台的上层业务虚拟环境只支持低端无线网卡W522U型号,传输速率低,无法兼容高端无线网卡U12型号,而新平台上层业务环境升级了能够兼容高端无线网卡U12型号,无线传输速率高,满足了业务测试需求;增加了IPV6流量测试,而老平台的上层业务虚拟环境只支持IPV4流量测试。
(一)构建接入WAN端上层业务测试环境
(1)在工控机采用VMware Workstation软件创建两个虚拟主机Centos7.8x86_64位系统分别为server服务端和client客户端,物理设备名LAN、WAN网卡分别桥接到虚拟主机client客户端eth1和server服务端eth1接口;
(2)工控机创建Npcap Loopback Adapter虚拟网卡分别桥接到两个虚拟主机eth0接口,用来建立工控机控制连接虚拟主机通信,同时虚拟主机服务端eth2接口桥接到工控机物理设备名w1800r网卡,然后虚拟主机服务端eth2再新增接口eth2:1接入上级W1800R路由器;
(3)无线路由器的LAN口和WAN口分别接入工控机物理设备名LAN和WAN网卡;
(4)工控机部署Appium环境,手机通过USB线接入到工控机USB口;
(5)TR069平台系统基于B/S架构,直接安装部署在工控机;
(6)工控机安装Ixchaiort软件和endpoint,同时两个虚拟主机安装endpoint软件,用于PC端或手机APP端流量测试;
(7)虚拟主机安装部署U12无线网卡RTL8812AU驱动程序,无线网卡接入到虚拟主机服务端,利用wpa_supplicant工具作为服务端设置自启动方式,关键技术在配置文件wpa_supplican.conf配置驱动数据达到兼容网卡目的,使用wpa_cli作为客户端交互模式进行各种无线无加密、加密认证连接;
(8)虚拟主机系统安装部署各类服务软件,比如常见的服务:IPv6、PPPOE、DHCP、TFTP、FTP、telnet、PPTP、dibbler、radvd、wget、xl2tp、ntp、named等。
(二)WAN端业务测试环境集成对接ATTRobot测试框架
(1)上层业务虚拟主机系统环境使用shell语言编写各类服务脚本文件,用来执行自动修改对应的服务配置文件及启动相应服务。
(2)项目工程用例分层思想共五层目录结构:
工程测试用例存放在测试框用例应用层,用例通过业务接口层引入的测试库关键字编写的测试用例脚本进行对测产品业务逻辑处理执行测试。
测试套件层:存放的产品模块功能测试用例,前提条件加载流程层管理、元素层管理、测试数据、WAN端服务器指令资源、环境初始化资源等封装的资源文件以及ChariotLibrary库。
流程层管理:封装产品模块功能界面配置操作流程步骤及异常检测的关键字,前提条件加载元素层管理、服务端API等封装的资源文件。
元素层管理:按产品模块功能布局划分,封装各功能界面元素控件属性,前提条件加载Selenium2Library库、AppiumLibrary库、测试数据等封装的资源文件。
测试数据:存放公共数据及通用变量,提供给测试用例全局调用。
服务端API:存放WAN端基础关键字、WAN端服务器指令参数、WAN端服务器指令资源、环境初始化资源等资源文件,里面封装WAN端上层业务测试环境的服务指令关键字以及业务操作关键字,包含用到的SSHLibrary库、Collections库、String库、XML库、DateTime库、NetConfigLibrary库。
(3)测试框架与上层业务虚拟环境集成,通过中间通信层进行通信数据发送和接收,利用导入SSHLibrary测试库使用关键字接口进行SSH协议远程登录到上层业务虚拟主机服务端下发对应服务配置文件实现配置对应的服务,然后下发启动服务指令把对应的服务进程启用或禁用,从而达到提供给被测产品需要的服务数据进行功能检测;
使用telnet实现测试框架远程登录到被测产品进行发送及接收数据或者使用Serial实现串口登录到被测产品进行发送及接收数据通信交互。
(4)业务接口层存放封装好的测试库类文件,使用python语言自行扩展封装好的测试库支撑业务测试需求,实现自动化覆盖率。
(5)使用python语言开发串口服务端集成对接ATTRobot测试框架,bat批处理脚本实现设计人机交互菜单选项,菜单选项调用后端串口服务端接口实现自动配置及执行串口开启、关闭等监听,自动生成串口日志文件。
三、本发明技术实现的优势:
本方案实现两大版块:WAN端上层业务环境系统构建和测试框架。
(一)测试框架:
为更好支撑业务功能测试需求,开发了五个子系统集成对接测试框架,分别是:NetConfigLibrary、ChariotLibrary、SerialLibrary、WAN端基础关键字、WAN端服务器指令资源等。
(1)高内聚低耦合,不需依赖过多的接口,自行开发测试库有利于扩展业务功能支撑测试需求。
(2)用例分层设计:采用五层分层思想,层次结构分明、清晰,有利于用例脚本维护,同时提高了重用利用率。
(3)使用关键字驱动和数据驱动方法编写用例脚本,测试框架提供加载测试库能够自动导出对应的关键字以及关键字使用方法描述说明、参数、举例等。不需要研读平台代码,提高了用例脚本编写效率,使无编程经验手工测试人员只需掌握测试库的关键字用法,了解用例分层思想就会写出测试用例脚本。
(4)测试库SerialLibrary引用SocketServer多线程技术开发Send Msg关键字与串口服务端对接并通过BAT批处理脚本提供带有菜单式界面方便用户使用操作串口服务端,给用户带来很好的体验操作。
(5)服务端API:主要对接上层业务测试环境通信数据交互处理。WAN端环境指令独立划出目录为服务端API,目录结构按WAN端基础关键字、WAN端服务器指令参数、WAN端服务器指令资源、环境初始化、Outfile、Log等分类归纳。直接在测试框架平台前端进行封装服务器通用指令用户关键字方法存放在服务端API目录下,不需python编写代码封装。
WAN端基础关键字:提供有获取IP、MAC、时间、无线信道、无线速率以及无线扫描、无线设置连接AP热点等方法。
WAN端服务器指令资源:提供常用的通用服务指令封装接口方法,比如PPPoEv4、PPPoEv6、DHCPv4、DHCPv6、FTP、TFTP、PPTP、HTTP、Ping诊断、W1800R Cfg、L2TP、网卡地址设置等等。
(6)能够支持产品pc端的web、手机端APP、接口API测试、网络终端通信、流量测试、IPv6接入等多维度领域业务测试需求。
(7)测试库ChariotLibrary引用加载IxChariot.dll库结合python与TCL语言混合编程扩展关键字Execute Chariot Throughput Test支撑IPv4和IPv6流量性能测试
(8)测试库NetConfigLibrary提供初始化设置工控机windows系统环境物理网卡IP地址、网关、DNS地址。引用winreg包查找注册表网卡设备名,引用netifaces包获取网卡的IP地址,引用subprocess的Popen方法通过管道下发netsh interface命令拼装参数实现设置网卡IP地址、网关、DNS地址。
(二)WAN端上层业务环境构建
(1)WAN端上层业务:测试框架兼容支持WAN端上层业务虚拟机环境网络通信交互及处理服务配置、启动服务进程。
(2)虚拟机环境系统升级:兼容高端无线网卡U12型号无线连接测试,传输速率高;同时支持IPV6业务PPPoEv6和DHCPv6服务功能、IPv4和IPv6流量性能测试,满足业务测试需求。
四、本发明涉及技术:
(1)ATTRobot测试框架:基于RobotFramework框架基础上进行二次开发,把底层依赖库、第三方扩展库如Selenium2Library、AppliumLibrary、RequestsLibrary、SSHLibrary、SerialLibrary、AutoItLibrary、ExcelLibrary及RIDE框架整合而成,采用python语言开发;
(2)WAN端上层业务虚拟环境:无线路由器WAN口接入上层业务虚拟机系统环境自动化配置服务以及服务启动脚本采用shell语言编写;
(3)自定义库:利用python语言编程封装NetConfigLibrary、ChariotLibrary、SerialLibrary等自定义测试库及关键字方法;
(4)WAN端上层业务测试环境系统用户关键字封装:采用关键字驱动封装WAN端上层业务虚拟机环境服务指令方法,比如包含有无线网卡扫描、配置、连接;IPv6配置及服务启动等方法,通过SSH通信登录到虚拟机环境下发指令及回显数据;
(5)虚拟机系统:采用Centos7.8 x86_64位版本,内核版本为3.10,部署各类服务,比如:dhcp、pppoe、IPV6、ntpd、telnet、pptp、tftp、xl2tp等通过桥接模式接入无线路由器WAN口提供服务应用。其中IPv6网络构建运用RADVD实现IPV6路由功能及无状态配置模式、DEBBLER服务实现DHCPv6地址分配;
(6)串口服务端中间件:利用python编程开发串口服务端工具,采用SocketServer.ThreadingTCPServer多线程并发设计,在框架SeriaLibrary库增加一个关键字Send Msg用来支持向目的设备发送指令并经服务端中间件处理,然后通过中间件接收返回的数据。能够同时监听多台客户端发来的指令处理,后端也能够同时记录串口中日志写入文本文件。使用bat批处理编写人机交互界面菜单,通过每个菜单选择进入相应的功能项;使用SmartInstallMaker打包工具打包成Setup.exe实现自动安装串口服务端工具,桌面自动生成应用程序图标,只需点击图标即可打开DOS窗口串口服务端工具人机交互菜单选项;
(7)用例分层设计:采用五层分层思想,分别为测试套件层、流程层管理、元素层管理、测试数据、服务端API,层次目录结构清晰,采用关键字驱动封装用户关键字接口方法,避免了重复造轮子成本。
五、本发明的设计思路:
本发明的一种基于路由器产品的自动化测试方法包括系统整体运行流程,本发明的系统包括四个子系统,分别是:无线自动化连接、串口通信自动化、流量性能自动化、IPv6网络接入自动化等。系统整体运行方法包括无线自动化连接流程、串口通信自动化流程、流量性能自动化流程、IPv6网络接入自动化流程。
(1)无线自动化连接:提供封装好的业务关键字方法属于在测试框架的用例应用层资源文件的WAN端基础关键字,与上层业务测试环境有直接联系,会调用上层业务测试环境的无线shell脚本发送无线配置指令。
(2)串口通信自动化:提供SerialLibrary库封装好的关键字方法属于在测试框架业务接口层,实现向串口服务端工具发送指令,由串口服务端转发给被测产品,最后通过被测产品回显的消息返回给客户端。
(3)流量性能自动化:支持PC端或手机APP端流量性能自动化测试,提供ChariotLibrary库封装好的关键字方法属于在测试框架业务接口层,与上层业务测试环境远端主机Endpoint服务有直接联系,利用ChariotLibrary库关键字构造TCP、UDP、TCP6、UDP6协议数据包,由PC控制端通过socket通信方式与控制远程虚拟主机远端建立连接,负责远程虚拟客户机与远程虚拟主机服务端进行单向或者双向发送、接收流量数据包。
(4)IPV6网络接入自动化:提供封装好的业务关键字方法属于在测试框架的用例应用层资源文件的WAN端服务器指令资源,跟上层业务虚拟环境有直接联系,会调用虚拟主机的shell脚本文件执行,并自动配置相关服务及启动服务进程。
(一)系统整体运行流程
如图2所示,系统整体运行流程图实现的原理过程具体如下:
本系统采用ATTRobot测试平台与WAN端上层业务测试环境集成对接,WAN端上层业务环境使用VMware Workstation软件创建两个虚拟主机Centos7.8系统,利用SSH协议通信实现框架与上层业务通信交互以及测试数据逻辑处理;被测产品前端调出测试库Selenium2Library和AppliumLibrary的关键字以及运用selenium、appium等驱动模块实现模拟用户行为事件操作被测产品前端配置;使用Serial库关键字实现向串口服务端发送指令传送给被测产品或者用Telnet库关键字向目的被测产品发送指令,最后再由被测产品回显消息返回给客户端等通信交互。
S1.首先,测试框架加载需要的测试库NetConfigLibrary及环境初始化资源文件、WAN端服务器指令资源等,能够调用测试库的关键字接口及资源文件数据、用户关键字。执行测试集环境初始化脚本设置远程虚拟主机环境网卡IP地址及工控机物理网卡IP地址、网关以及初始化登录虚拟主机;
S2.其次,使用SSHLibrary测试库关键字Switch Connection切换目标虚拟主机下发指定的配置文件并启动服务进程,再切换通过selenium和appium调用底层驱动webdriver分别控制浏览器、手机APP端,引用测试库Selenium2Library对TR069、无线路由器的前端界面和引用测试库AppliumLibrary对手机APP端等进行模拟用户事件配置操作;
S3.执行流量性能自动化测试:通过socket通信方式与远程虚拟主机建立链接,并使用ChariotLibrary测试库的Execute Chariot Throughput Test关键字分别构造TCP、UDP、TCP6、UDP6等协议数据流以及数据包大小,实现上行、下行、上行+下行等三种策略吞吐量性能测试;
S4.执行无线连接测试:使用SSHLibrary测试库关键字Switch Connection切换到目标虚拟主机,利用封装好的WAN端服务端资源的U12无线网卡用户关键字下发扫描AP指令,再根据扫描到AP热点,执行下发配置无线网卡参数并与目的AP热点建立连接;
S5.如需要在虚拟主机环境检测事件时,调用WAN端服务器指令资源文件用户关键字下发指令执行检测数据,比如下发指定shell脚本文件自动配置PPPoEv6或DHCPv6服务、服务启动以及串口发送指令等数据检测。
S6.最后,ATTRobot测试框架通过SSH管道通信把远程虚拟主机回显的数据传送过来并读取数据进行清洗处理,提取匹配指标项关键词用来做断言判断,把断言的结果进行解析并传参到测试报告模板文件,然后生成测试报告及日志文件。测试用例执行结束后,继续清理还原当前用例模块环境以及测试集环境清理,还原虚拟主机原始的环境。如果是串口通信交互,调用Serial测试库关键字向串口服务端工具发送指令,由服务端转发消息给被测产品,最后由被测产品做出响应数据回显传送返回给客户端业务逻辑处理,同时串口服务端记录串口日志信息到文本文件保存。
(二)无线自动化连接流程
如图3所示,无线自动化连接流程实现的原理过程具体如下:
本实现功能使用U12型号无线网卡接入虚拟主机系统,无线网卡驱动使用RTL8812AU,工具使用wpa_supplicant,服务端启动wpa_supplicant服务进程,测试框架利用python语言封装好的无线模块用户关键字接口通过SSH管道通信向虚拟主机下发wpa_cli命令进行无线网卡参数值设置及无线扫描、连接AP热点、断开热点等有关操作,通过回显的数据进行传送给测试框架平台并读取数据进行数据清洗处理,最终提取关键词断言结论。
wpa_cli交互模式支持各种无线无加密、加密认证连接,比如常见的产品WPA-PSK\WPA2-PSK\WEP。
a1.首先,测试框架加载需要的测试库NetConfigLibrary及环境初始化资源文件、WAN端服务器指令资源等,同时执行测试集环境初始化脚本设置远程虚拟主机环境网卡IP和无线wlan0接口IP地址及工控机物理网卡IP地址、网关以及初始化登录虚拟主机;
a2.其次,若用例需要桥接上级W1800R路由器,使用SSHLibrary测试库关键字Switch Connection切换目标虚拟主机下发指定的配置文件设置上级路由器无线数据并启动服务进程;否则不需下发指定配置文件设置上级路由器;
a3.再次,通过selenium和appium调用底层驱动webdriver分别控制浏览器、手机APP端,引用测试库Selenium2Library和AppliumLibrary分别对无线路由器、手机APP端等进行模拟用户事件配置操作无线模块前端数据;
a4.无线扫描、连接测试
a41.wpa_cli命令封装在U12 Scan和U12 Cfg关键字,执行用户关键字U12Scan根据传参无线接口、SSID名等,自动扫描周边目的AP热点并读取扫描后的数据进行判断匹配,如成功扫描并执行关键字U12 Cfg进行下发指令,进行无线参数设置并连接到热点AP,若扫描不成功,则断言失败直接把结果记录在测试报告及日志文件;
a42.如无线成功连接到热点AP,则执行关键字Ping诊断检测虚拟主机客户端是否能Ping通服务端主机,把ping的数据结果回显传送给测试框架平台并读取数据指标项进行数据清洗提取关键词丢包率值进行断言是否PING成功还是失败;如无线连接失败,则断言失败直接把结果记录在测试报告及日志文件。
a5.最后生成最终的测试报告和日志文件,并清理用例环境以及测试集环境还原。
(三)串口通信自动化流程
如图4所示,串口通信自动化连接流程实现的原理过程具体如下:
本实现功能串口服务端与测试框架对接集成,后端使用Socket的ThreadingTCPServer方法实现多线程,允许服务端同时并发接收多个来自客户端的请求;ATTRobot平台SerialLirary测试库封装好的Send Msg关键字接口用来与串口服务端进行通信交互;使用bat批处理编写人机交互界面菜单提供有四个选项功能:启动串口服务、查看配置文件数据、帮助、退出系统。通过每个菜单选择进入相应的功能项接口实现;
b1.当服务端开启时,后台打开串口,一边进入循环监听客户端事件,一边循环读取被测设备串口数据写入文本文件;
b2.客户端使用关键字Send Msg传参指令、IP地址为127.0.0.1、端口号为12345向服务端目的端口发送消息时,中间件Socket获取消息后,并转发给后端设备后并读取串口回显的数据,再返回给客户端;
b3.客户端读取返回的数据进行数据精准处理,提取关键词存储在变量里进行断言结论。
(四)流量性能自动化流程
如图5所示,流量性能自动化流程实现的原理过程具体如下:
使用IxChariot软件,由IXChariot控制端和Endpoint远端组成。控制端安装IXChariot软件,远端Endpoint部署在上层业务虚拟主机负责从控制端接收指令、完成测试并将测试数据传送到控制端展示的测试数据结果。本实现功能采用关键技术python与tcl混合编程方法,运用tcl脚本加载ChariotExt.dll动态链接库调出API接口,支持TCP\UDP\TCP6\UDP6协议。ATTRobot测试框架扩展了ChariotLibrary测试库并封装好ExecuteChariot Throughput Test关键字方法自动控制IxChariot软件构造协议数据流实现自动化运行跑PC端或手机APP端流量测试。
c1.自动化实现流程:
前提条件进行环境初始化设置工控机网卡及虚拟主机网卡IP、网关地址,调用驱动模块控制PC端Web浏览器或者手机APP端进行前端配置操作,然后加载ChariotExt.dll动态链接库,循环构造协议数据流运行测试,通过计算每条流运行时间和每条流平均吞吐量值进行累加,再通过公式精准得出总和值,最终得出平均吞吐量值,执行完后,会自动把每条测试点的测试数据log日志和tst格式文件保存到指定的目录下提供查看测试数据,最后释放资源,把获取的平均吞吐值回显传送给测试框架平台进行数据清洗处理,提取吞吐量关键指标值,采用公式误差率=(实际值-理论值)/理论值x100%自动得出误差率值进行断言判断结论。
1、平均吞吐量计算方法
(1)取出每条流的运行时间:
runingtime=self.tcl.eval("set runingtime[chrCommonResults get[setpair{$i}]MEAS_TIME]".format(i))
(2)取出每条流的平均吞吐量值:
throughput=self.tcl.eval("set throughput[chrPairResults get[set pair{$i}]THROUGHPUT]".format(i))
(3)计算平均吞吐量总和值:
sum_throught=sum_throught+float(avg)*runingtime
(4)得出最终的吞吐量平均值:
ret=sum_throught/maxruntime
2、误差率计算
公式:误差率=(实际值-理论值)/理论值x100%
预期值与实际值对比判断是否通过,根据误差率计算对比
如:允许误差率为小于8%
条件判断:(96.853-95)/95<0.08&&(88-90)/90>-0.08
(五)IPv6网络接入自动化流程
如图6所示,IPv6网络接入自动化流程实现的原理过程具体如下:
本实现功能IPv6网络属于WAN端上层业务测试环境,使用RADVD实现IPv6路由及无状态模式,DIBBLER实现DHCPv6动态分配地址。支持IPv6地址分配有三种模式:无状态自动配置、完全无状态自动配置、有状态自动配置。同时兼容IPv4和dhcpv4服务,实现双栈服务模式。
上层业务环境系统各类服务配置脚本文件采用shell语言编写,并提供有参数传参,方便提供给测试框架调用,利用测试框架平台把有关服务命令方法封装在PPPoEv6和DHCPv6、Pingv6、PPPoE Cfg、DHCP Cfg等用户关键字通过传参实现自动化调用WAN端上层业务的对应的服务shell脚本文件进行配置IPv4和IPv6服务并同时执行相应服务启动进程,实现了支持被测产品提供双栈IPv4和IPv6服务模式,从而达到有效业务覆盖测试范围目标。
具体实现原理过程详情如下:
d1.首先,测试框架平台加载测试库、资源文件,并进行测试集环境初始化设置工控机物理LAN端网卡IP以及虚拟主机网卡eth1接口IP、网关、路由。
d2.其次,若执行产品IPv6网络PPPoEv6拨号连接测试,使用SSHLibrary测试库关键字Switch Connection切换目标虚拟主机服务端,通过平台封装好的关键字PPPoE Cfg调用虚拟主机PPPoEv4脚本配置PPPoE服务并同时启动PPPoE服务,再利用封装好的关键字PPPoEv6 Cfg调用虚拟主机PPPoEv6脚本配置RADVD服务;若执行产品IPv6网络自动获取,则使用封装好的关键字DHCP Cfg调用虚拟主机DHCP脚本配置DHCP服务并同时启动DHCP服务,再利用封装好的关键字DHCPv6 cfg调用虚拟主机DHCPv6脚本文件自动配置RADVD和DIBBLERR接口名,并同时启动RADVD和DIBBLER服务。
d3.实现地址分配三种模式方法:通过测试框架关键字PPPoEv6 Cfg和DHCPv6 Cfg调用虚拟主机PPPoEv6和DHCPv6脚本文件进行传参-mf、-of、-af设置值并自动配置RADVD服务文件。
d31.当参数-mf为on,-of为on,-af为off时,自动配置RADVD有状态模式。主机直接从DIBBLER服务获取全部的地址信息及其它配置信息(如dns、domain name)。
d32.当参数-mf为off,-of为on,-af为on时,自动配置RADVD无状态模式。主机从路由通告信息中获取地址信息,并从DIBBLER服务获取其它配置信息(如dns、domain name)。
d33.当参数-mf为off,-of为off,-af为on时,自动配置RADVD完全无状态模式。DIBBLER服务不用于分配地址,主机通过路由通告信息获取地址以及DNS地址。
d4.切换到被测产品并通过selenium和appium调用驱动模块执行控制操作无线路由器或手机APP端模拟用户行为事件配置操作,当选择联网方式为PPPoEv6时,自动触发虚拟主机服务端ipv6-up脚本执行配置RADVD和DIBBLER服务,并同时启动RADVD和DIBBLER服务进程;当选择联网方式为自动获取时,不会触发ipv6-up脚本。
d5.最后,自动远程登录虚拟主机客户端,执行关键字Ping6向目的服务端进行Ping6诊断测试,并把回显的数据传送到测试框架并读取数据及数据清洗处理,提取丢包率关键指标作为检测结果并生成测试报告及日志文件,用例环境清理,最后执行脚本实现测试集还原原始的环境。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于路由器产品的自动化测试系统,其特征在于,包括WAN端上层业务测试环境、ATTRobot测试框架、底层,所述ATTRobot测试框架与WAN端上层业务测试环境集成;
所述WAN端上层业务测试环境包括工控机、WAN端设备,所述工控机创建有两个虚拟主机分别为服务端和客户端,工控机创建有虚拟网卡分别桥接到两个虚拟主机eth0接口,多个所述WAN端设备桥接到两个虚拟主机的接口;
所述ATTRobot测试框架包括五个子系统和两个WAN端关键字封装模块,五个子系统包括自动配置物理机网卡系统、无线自动化连接系统、串口通信自动化系统、流量性能自动化系统、IPv6网络接入自动化系统,两个所述WAN端关键字封装模块包括WAN端基础关键字、WAN端服务器指令资源;
所述底层包括Python Lib库、协议栈;
所述ATTRobot测试框架包括分为通信层、用例应用层、业务接口层,所述工控机通过通信层与ATTRobot测试框架集成通信,所述底层通过业务接口层与ATTRobot测试框架集成通信。
2.根据权利要求1所述基于路由器产品的自动化测试系统,其特征在于,所述WAN端设备包括上级路由器、无线路由器、移动终端、平台管理系统,所述工控机包括有上级路由器网卡、LAN网卡和WAN网卡,所述LAN网卡、WAN网卡分别桥接到虚拟主机客户端eth1接口和服务端eth1接口,虚拟主机服务端eth2接口桥接上级路由器网卡,虚拟主机服务端eth2接口新增eth2:1接口接入上级路由器,所述无线路由器的LAN口和WAN口分别接入工控机的LAN网卡和WAN网卡,所述移动终端接入工控机的USB接口,所述平台管理系统安装部署在工控机上。
3.根据权利要求1所述基于路由器产品的自动化测试系统,其特征在于,所述通信层包括:
SSH协议模块:远程登录到上层业务虚拟主机服务端下发对应服务配置文件,下发启动服务指令把对应的服务进程启用或禁用,并提供给被测产品需要的服务数据进行功能检测;
telent模块:实现测试框架远程登录到被测产品进行发送及接收数据;
Serial模块:实现串口登录到被测产品进行发送及接收数据通信交互。
4.根据权利要求1所述基于路由器产品的自动化测试系统,其特征在于,所述用例应用层存放有工程测试用例,所述工程测试用例通过业务接口层对测试产品业务逻辑处理执行测试;
所述工程测试用例包括五层目录结构:
测试套件层:存放的产品模块功能测试用例,前提条件加载流程层管理、元素层管理、测试数据、WAN端服务器指令资源、环境初始化资源封装的资源文件以及ChariotLibrary库;
流程层管理:封装产品模块功能界面配置操作流程步骤及异常检测的关键字,前提条件加载元素层管理、服务端API封装的资源文件;
元素层管理:按产品模块功能布局划分,封装各功能界面元素控件属性,前提条件加载Selenium2Library库、AppiumLibrary库、测试数据封装的资源文件;
测试数据:存放公共数据及通用变量,提供给测试用例全局调用;
服务端API:存放WAN端基础关键字、WAN端服务器指令参数、WAN端服务器指令资源、环境初始化资源的资源文件,里面封装WAN端上层业务测试环境的服务指令关键字以及业务操作关键字,包含SSHLibrary库、Collections库、String库、XML库、DateTime库、NetConfigLibrary库。
5.根据权利要求1所述基于路由器产品的自动化测试系统,其特征在于,所述业务接口层包括测试库,所述测试库包括:
SerialLibrary库:引用SocketServer多线程技术开发Send Msg关键字与串口服务端对接并通过BAT批处理脚本提供带有菜单式界面方便用户使用操作串口服务端;
ChariotLibrary库:引用加载IxChariot.dll库结合python与TCL语言混合编程扩展关键字Execute Chariot Throughput Test支撑IPv4和IPv6流量性能测试;
NetConfigLibrary库:提供初始化设置工控机windows系统环境物理网卡IP地址、网关、DNS地址;引用winreg包查找注册表网卡设备名,引用netifaces包获取网卡的IP地址,引用subprocess的Popen方法通过管道下发netsh interface命令拼装参数设置网卡IP地址、网关、DNS地址。
6.一种根据权利要求1至5任一项所述测试系统的基于路由器产品的自动化测试方法,其特征在于,包括系统整体运行流程,所述系统整体运行流程包括无线自动化连接流程、串口通信自动化流程、流量性能自动化流程、IPv6网络接入自动化流程;
所述系统整体运行流程具体包括以下步骤:
S1.测试框架加载需要的测试库NetConfigLibrary及环境初始化资源文件、WAN端服务器指令资源,调用测试库的关键字接口及资源文件数据、用户关键字;执行测试集环境初始化脚本设置远程虚拟主机环境网卡IP地址及工控机物理网卡IP地址、网关以及初始化登录虚拟主机;
S2.使用SSHLibrary测试库关键字Switch Connection切换目标虚拟主机下发指定的配置文件并启动服务进程,再切换通过selenium和appium调用底层驱动webdriver分别控制浏览器、手机APP端,引用测试库Selenium2Library对平台管理系统、无线路由器的前端界面和引用测试库AppliumLibrary对手机APP端进行模拟用户事件配置操作;
S3.执行流量性能自动化测试:由PC控制端通过socket通信方式控制远程虚拟主机远端建立连接,负责远程虚拟客户机与远程虚拟主机服务端进行发送、接收流量数据包;使用ChariotLibrary测试库的Execute Chariot Throughput Test关键字分别构造TCP、UDP、TCP6、UDP6协议数据流以及数据包大小,进行上行、下行、上行+下行三种策略吞吐量性能测试;
S4.执行无线连接测试:使用SSHLibrary测试库关键字Switch Connection切换到目标虚拟主机,采用封装好的WAN端服务端资源的U12无线网卡用户关键字下发扫描AP指令,再根据扫描到AP热点,执行下发配置无线网卡参数并与目的AP热点建立连接;
S5.如需要在虚拟主机环境检测事件时,调用WAN端服务器指令资源文件用户关键字下发指令执行检测数据;
S6. ATTRobot测试框架通过SSH管道通信把远程虚拟主机回显的数据传送过来并读取数据进行清洗处理,提取匹配指标项关键词用来做断言判断,把断言的结果进行解析并传参到测试报告模板文件,然后生成测试报告及日志文件;测试用例执行结束后,继续清理还原当前用例模块环境以及测试集环境清理,还原虚拟主机原始的环境;如果是串口通信交互,调用Serial测试库关键字向串口服务端工具发送指令,由服务端转发消息给被测产品,最后由被测产品做出响应数据回显传送返回给客户端业务逻辑处理,同时串口服务端记录串口日志信息到文本文件保存。
7.根据权利要求6所述基于路由器产品的自动化测试方法,其特征在于,所述无线自动化连接流程包括以下步骤:
a1.测试框架加载需要的测试库NetConfigLibrary及环境初始化资源文件、WAN端服务器指令资源,同时执行测试集环境初始化脚本设置远程虚拟主机环境网卡IP和无线wlan0接口IP地址及工控机物理网卡IP地址、网关以及初始化登录虚拟主机;
a2.若用例需要桥接上级路由器,使用SSHLibrary测试库关键字Switch Connection切换目标虚拟主机下发指定的配置文件设置上级路由器无线数据并启动服务进程;否则不需下发指定配置文件设置上级路由器;
a3.通过selenium和appium调用底层驱动webdriver分别控制浏览器、手机APP端,引用测试库Selenium2Library和AppliumLibrary分别对无线路由器、手机APP端进行模拟用户事件配置操作无线模块前端数据;
a4.无线扫描、连接测试:
a41. wpa_cli命令封装在U12 Scan和U12 Cfg关键字,执行用户关键字U12 Scan根据传参无线接口、SSID名,自动扫描周边目的AP热点并读取扫描后的数据进行判断匹配,如成功扫描并执行关键字U12 Cfg进行下发指令,进行无线参数设置并连接到热点AP,若扫描不成功,则断言失败直接把结果记录在测试报告及日志文件;
a42.如无线成功连接到热点AP,则执行关键字Ping诊断检测虚拟主机客户端是否能Ping通服务端主机,把Ping的数据结果回显传送给测试框架平台并读取数据指标项进行数据清洗提取关键词丢包率值进行断言是否Ping成功还是失败;如无线连接失败,则断言失败直接把结果记录在测试报告及日志文件;
a5.生成最终的测试报告和日志文件,并清理用例环境以及测试集环境还原。
8.根据权利要求6所述基于路由器产品的自动化测试方法,其特征在于,所述串口通信自动化流程包括以下步骤:
b1.当服务端开启时,后台打开串口,一边进入循环监听客户端事件,一边循环读取被测设备串口数据写入文本文件;
b2.客户端使用关键字Send Msg传参指令、IP地址为127.0.0.1、端口号为12345向服务端目的端口发送消息时,中间件Socket获取消息后,并转发给后端设备后并读取串口回显的数据,再返回给客户端;
b3.客户端读取返回的数据进行数据精准处理,提取关键词存储在变量里进行断言结论。
9.根据权利要求6所述基于路由器产品的自动化测试方法,其特征在于,所述流量性能自动化流程包括以下步骤:
c1.前提条件进行环境初始化设置工控机网卡及虚拟主机网卡IP、网关地址,调用驱动模块控制PC端Web浏览器或者手机APP端进行前端配置操作,然后加载ChariotExt.dll动态链接库,循环构造协议数据流运行测试,通过计算每条流运行时间和每条流平均吞吐量值进行累加,再通过公式精准得出总和值,最终得出平均吞吐量值,执行完后,会自动把每条测试点的测试数据log日志和tst格式文件保存到指定的目录下提供查看测试数据,最后释放资源,把获取的平均吞吐值回显传送给测试框架平台进行数据清洗处理,提取吞吐量关键指标值,采用公式误差率=(实际值-理论值)/理论值x100%自动得出误差率值进行断言判断结论。
10.根据权利要求6所述基于路由器产品的自动化测试方法,其特征在于,所述IPv6网络接入自动化流程包括以下步骤:
d1.测试框架平台加载测试库、资源文件,并进行测试集环境初始化设置工控机物理LAN端网卡IP以及虚拟主机网卡eth1接口IP、网关、路由;
d2.若执行产品IPv6网络PPPoEv6拨号连接测试,使用SSHLibrary测试库关键字SwitchConnection切换目标虚拟主机服务端,通过平台封装好的关键字PPPoE Cfg调用虚拟主机PPPoEv4脚本配置PPPoE服务并同时启动PPPoE服务,再利用封装好的关键字PPPoEv6 Cfg调用虚拟主机PPPoEv6脚本配置RADVD服务;若执行产品IPv6网络自动获取,则使用封装好的关键字DHCP Cfg调用虚拟主机DHCP脚本配置DHCP服务并同时启动DHCP服务,再利用封装好的关键字DHCPv6 cfg调用虚拟主机DHCPv6脚本文件自动配置RADVD和DIBBLERR接口名,并同时启动RADVD和DIBBLER服务;
d3.地址分配三种模式方法:通过测试框架关键字PPPoEv6 Cfg和DHCPv6 Cfg调用虚拟主机PPPoEv6和DHCPv6脚本文件进行传参-mf、-of、-af设置值并自动配置RADVD服务文件;
s31.当参数-mf为on,-of为on,-af为off时,自动配置RADVD有状态模式;主机直接从DIBBLER服务获取全部的地址信息及其它配置信息;
s32.当参数-mf为off,-of为on,-af为on时,自动配置RADVD无状态模式;主机从路由通告信息中获取地址信息,并从DIBBLER服务获取其它配置信息;
s33.当参数-mf为off,-of为off,-af为on时,自动配置RADVD完全无状态模式;DIBBLER服务不用于分配地址,主机通过路由通告信息获取地址以及DNS地址;
d4.切换到被测产品并通过selenium和appium调用驱动模块执行控制操作无线路由器或手机APP端模拟用户行为事件配置操作,当选择联网方式为PPPoEv6时,自动触发虚拟主机服务端ipv6-up脚本执行配置RADVD和DIBBLER服务,并同时启动RADVD和DIBBLER服务进程;当选择联网方式为自动获取时,不会触发ipv6-up脚本;
d5.自动远程登录虚拟主机客户端,执行关键字Ping6向目的服务端进行Ping6诊断测试,并把回显的数据传送到测试框架并读取数据及数据清洗处理,提取丢包率关键指标作为检测结果并生成测试报告及日志文件,用例环境清理,最后执行脚本进行测试集还原原始的环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292647.6A CN113064780B (zh) | 2021-03-18 | 2021-03-18 | 一种基于路由器产品的自动化测试系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292647.6A CN113064780B (zh) | 2021-03-18 | 2021-03-18 | 一种基于路由器产品的自动化测试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064780A CN113064780A (zh) | 2021-07-02 |
CN113064780B true CN113064780B (zh) | 2022-08-30 |
Family
ID=76562168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110292647.6A Active CN113064780B (zh) | 2021-03-18 | 2021-03-18 | 一种基于路由器产品的自动化测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064780B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113849356B (zh) * | 2021-09-07 | 2024-04-30 | 深圳Tcl新技术有限公司 | 一种设备测试方法、装置、电子设备和存储介质 |
CN113938933A (zh) * | 2021-09-15 | 2022-01-14 | 深圳市共进电子股份有限公司 | 网络测试方法、网络测试系统以及测试主机 |
CN114090117A (zh) * | 2021-11-10 | 2022-02-25 | 深圳Tcl新技术有限公司 | 一种配置方法、装置、设备及存储介质 |
CN114500228B (zh) * | 2021-12-29 | 2024-03-29 | 深圳市共进电子股份有限公司 | 自动化测试方法和自动测试系统 |
CN114553685B (zh) * | 2022-02-24 | 2024-04-05 | 东莞市锐易电子科技有限公司 | 一种测试路由器宽带接入的方法 |
CN114629830B (zh) * | 2022-03-02 | 2023-08-11 | 深圳市吉祥腾达科技有限公司 | 自动化控制TestCenter仪器测试的方法及系统 |
CN114817018B (zh) * | 2022-04-18 | 2023-02-21 | 润芯微科技(江苏)有限公司 | 一种仪表域人机交互标准化平台的开发测试系统 |
CN115277502B (zh) * | 2022-06-17 | 2023-10-10 | 广州根链国际网络研究院有限公司 | 一种针对APP应用的自动化测量IPv6流量的方法 |
CN114924991B (zh) * | 2022-07-19 | 2022-12-13 | 深圳市亿联无限科技有限公司 | 一种特定操作下出现概率性问题的复现方法及系统 |
CN116319245B (zh) * | 2023-05-17 | 2023-08-29 | 南京中科算通科技有限公司 | 面向5g协议的分布式测试系统 |
CN116795406B (zh) * | 2023-08-28 | 2023-11-24 | 北京国电通网络技术有限公司 | 终端设备软件升级方法、装置、设备和计算机可读介质 |
CN117667709B (zh) * | 2023-12-07 | 2024-05-17 | 长园智能装备(广东)有限公司 | 一种制造业自动化测试方向标准协议栈的设计方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6158031A (en) * | 1998-09-08 | 2000-12-05 | Lucent Technologies, Inc. | Automated code generating translator for testing telecommunication system devices and method |
CN106789391A (zh) * | 2016-11-14 | 2017-05-31 | 上海斐讯数据通信技术有限公司 | 一种路由器dhcp功能的自动化测试方法及装置 |
CN106789401A (zh) * | 2016-11-29 | 2017-05-31 | 上海斐讯数据通信技术有限公司 | 一种双频无线路由器的性能测试方法及系统 |
CN111190812A (zh) * | 2019-12-12 | 2020-05-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于嵌入式设备的自动化测试框架 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9838295B2 (en) * | 2015-11-23 | 2017-12-05 | Contec, Llc | Wireless routers under test |
WO2017053961A1 (en) * | 2015-09-25 | 2017-03-30 | Contec, Llc | Universal device testing system |
CN110290029B (zh) * | 2019-07-18 | 2021-02-23 | 深圳市吉祥腾达科技有限公司 | 一种路由器综合业务有线带机量测试方法 |
CN111130927B (zh) * | 2019-12-04 | 2021-12-17 | 中国电子科技集团公司第三十研究所 | 一种网络层通信终端设备业务测试自动化实现方法 |
CN111211944B (zh) * | 2020-01-07 | 2021-11-12 | 深圳市吉祥腾达科技有限公司 | 一种路由器一wan多拨稳定性测试系统及测试方法 |
-
2021
- 2021-03-18 CN CN202110292647.6A patent/CN113064780B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6158031A (en) * | 1998-09-08 | 2000-12-05 | Lucent Technologies, Inc. | Automated code generating translator for testing telecommunication system devices and method |
CN106789391A (zh) * | 2016-11-14 | 2017-05-31 | 上海斐讯数据通信技术有限公司 | 一种路由器dhcp功能的自动化测试方法及装置 |
CN106789401A (zh) * | 2016-11-29 | 2017-05-31 | 上海斐讯数据通信技术有限公司 | 一种双频无线路由器的性能测试方法及系统 |
CN111190812A (zh) * | 2019-12-12 | 2020-05-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于嵌入式设备的自动化测试框架 |
Also Published As
Publication number | Publication date |
---|---|
CN113064780A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113064780B (zh) | 一种基于路由器产品的自动化测试系统及方法 | |
US11630646B2 (en) | Software defined network controller | |
US7117411B2 (en) | Methods and systems for testing communications network components | |
JP3706145B2 (ja) | Unix開放型システム間相互接続層のテスト | |
KR100821402B1 (ko) | 유선 및 무선 네트워크를 동적으로 구성 및 전환하는시스템 및 방법 | |
CN100544292C (zh) | 一种宽带接入服务器自动化测试的方法 | |
CN106326088B (zh) | 实现构建测试对象的方法、装置及业务配置测试的装置 | |
US20060039538A1 (en) | "Software only" tool for testing networks under high-capacity, real-world conditions | |
CN106844213A (zh) | 一种前端自动化测试方法及装置 | |
CN104581785A (zh) | 无线网络测试方法、测试装置和移动终端 | |
CN113518018B (zh) | 一种路由器系统稳定性测试系统及测试方法 | |
CN111142878A (zh) | Sdn运维方法、装置、设备以及可读存储介质 | |
CN112333019A (zh) | 路由器的配置、测试方法及系统和可读存储介质 | |
CN102571474B (zh) | 虚拟化的Radius测试系统及方法 | |
CN101964923A (zh) | 交互式命令的配置系统及方法 | |
CN110677308A (zh) | 一种代码自动化部署方法 | |
CN112954725A (zh) | 测试方法、通讯系统以及NB-IoT装置 | |
CN102420722A (zh) | 综合组网自动化测试方法及系统 | |
CN114629830A (zh) | 自动化控制TestCenter仪器测试的方法及系统 | |
CN103595592B (zh) | 一种测试广域网接口协议一致性的方法及系统 | |
KR101685892B1 (ko) | 가상 장비 네트워크 시스템 | |
Venkataramanan | IPv6 on HP E-Series wireless networking devices | |
Pratesi et al. | An Android-based testbed for hybrid Wireless Mesh Networks in the IoT perspective | |
CN104317755A (zh) | 一种应用于信号发生器的无线程控方法 | |
CN116546542A (zh) | 一种多网络连接状态的可视化测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |