CN113032247A - 一种ubus命令行自动化测试方法及系统 - Google Patents
一种ubus命令行自动化测试方法及系统 Download PDFInfo
- Publication number
- CN113032247A CN113032247A CN202110243851.9A CN202110243851A CN113032247A CN 113032247 A CN113032247 A CN 113032247A CN 202110243851 A CN202110243851 A CN 202110243851A CN 113032247 A CN113032247 A CN 113032247A
- Authority
- CN
- China
- Prior art keywords
- test
- command
- ubus
- test case
- configuration
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- 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/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种ubus命令行自动化测试方法及系统,属于测试工具领域。本发明测试方法包括如下步骤:初始化,配置测试用环境和变量信息;获取测试命令,执行指定项目下的测试用例;调用函数,从指定项目目录下读取需要下发的ubus命令;远程登录待测试设备,然后下发ubus命令;在测试用例中进行相关数据项的校验,根据测试结果是否与预期一致判断该条测试用例执行结果,并记录该测试用例执行结果;执行完所有的测试用例,生成测试报告。本发明的有益效果为:提升效率,节省人力;能够稳定输出测试结果,降低漏测率及复测率。
Description
技术领域
本发明涉及一种测试工具,尤其涉及一种ubus命令行自动化测试方法及系统。
背景技术
电信出台了最新的e-OS智能路由器规范,后续厂家应将基础能力封装成ubus接口能力模块ctcapd,提供对AP(无线接入点)管理配置能力的开放。Ubus为openwrt平台开发中进程间通信提供了一个通用的框架,它让进程间通信变得非常简单,并且ubus具有很强的可移植性。
依照电信官方给出技术白皮书以及智慧家庭验收方案,对能力模块ctcapd的ubus命令开发一套自动化测试工具,可以用户后续所有支持e-OS规范下的ubus命令测试。
现有技术采用手工测试的方法,对ubus命令进行测试,有以下缺点:
1、需要对每个版本均需要对ctcapd的ubus命令进行回归测试,手工测试需要一天时间,效率低;
2.漏测率高,多个版本的迭代测试对ubus接口相关命令,难免在重复的过程中不会存在遗漏;
3.复测率低,手工操作耗时太久,这就导致复测率不能达到100%,不能保证没有遗漏。
发明内容
为解决现有技术中的问题,本发明提供一种ubus命令行自动化测试方法及系统。
本发明测试方法包括如下步骤:
S1:初始化,配置测试用环境和变量信息;
S2:获取测试命令,执行指定项目下的测试用例;
S3:调用函数,从指定项目目录下读取需要下发的ubus命令;
S4:远程登录待测试设备,然后下发ubus命令;
S5:在测试用例中进行相关数据项的校验,根据测试结果是否与预期一致判断该条测试用例执行结果,并记录该测试用例执行结果;
S6:判断是否有下一条测试用例,如果是,返回执行步骤S3,测试下一条测试用例,如果否,生成测试报告,结束。
本发明作进一步改进,步骤S5中,判断步骤包括如下子步骤:
S51:判断校验命令返回值是否与预期保持一致,如果是,执行步骤S52,如果否,执行步骤S54;
S52:设置命令使用对应查询命令查看返回值是否下发成功,如果是,执行步骤S53,否则,执行步骤S54;
S53:调用函数校验配置是否实际生效,如果是,标记测试用例执行成功,然后执行步骤S6,如果否,执行步骤S54;
S54:标记该条测试用例执行失败,并记录错误日志,然后执行步骤S6。
本发明作进一步改进,步骤S1中,安装requirements.txt文件中的环境依赖包配置,完成python环境配置,然后在config目录下的config.ini文件中完成项目需要的变量配置,包括telnet账号密码、默认wifi账号密码配置、默认WAN联网配置、电脑MAC地址配置。
本发明作进一步改进,步骤S6中,所述测试用例执行完成之后会将报告以json的格式保存在指定目录下,然后使用自动化报告生成工具将json格式转换成html格式输出。
本发明作进一步改进,步骤S2中,所述测试用例通过定义filename文件名区分不同模块的excel文档,再调用实现实例化的GetExcelData方法生成Excel测试用例集excelData,用于后续测试用例中参数的调用。
本发明作进一步改进,步骤S4中,调用基于telnetlib库的handle_telnet_excute.py函数使用telnet远程登录待测设备并下发返回的ubus命令参数,具体处理过程为:
S41:从配置文件中读取变量配置信息;
S42:调用telnetlib库的open方法函数;
S43:输入用户名密码后输入相关指令进入命令模式;
S44:下方从excel中读取的ubus命令。
本发明还提供一种包括所述测试方法的系统,包括:
配置模块:用于配置测试用环境和变量信息;
执行模块:用于当获取测试命令后,执行指定项目下的测试用例;
读取模块:用于从指定项目目录下读取需要下发的ubus命令;
下方命令模块:用于远程登录待测试设备,然后下发ubus命令;
校验模块:用于在测试用例中进行相关数据项的校验,根据测试结果是否与预期一致判断该条测试用例执行结果,并记录该测试用例执行结果;
判断模块:用于判断是否还有下一条测试用例;
报告生成模块:用于生成测试报告。
与现有技术相比,本发明的有益效果是:降低ubus测试项的门槛,无需深入了解ubus命令行的详细实现,简单学习工具使用就可以完成ubus模块执行;使用本工具可以提升效率,节省人力;能够稳定输出测试结果,降低漏测率及复测率;不仅会输出完整的测试报告,还有具体测试的日志文件,方便后续问题回溯跟踪。
附图说明
图1为本发明方法流程图;
图2为测试报告界面示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
本发明设计一自动化测试工具,可以ubus命令自动化测试,无需人工干预,测试完成后,自动输出测试结果,本例用于符合电信e-Link组网3.0规范e-OS智能路由器规范的家用路由器,对路由器的ubus命令行进行测试,设备需支持开放telnet协议通信模块,以下对分模块对本发明进行说明。
1、测试环境
系统支持:本例在电脑上运行,该电脑采用windows7或者linux均可;
测试框架:python+selenium+pytest+allure
其中,pytest是一个非常成熟的全功能的Python测试框架,适合从简单的单元到复杂的功能测试,主要特点有以下几点:1.简单灵活,容易上手;2.支持参数化;3.能够支持简单的单元测试;4.标记测试功能与属性5.复杂的功能测试,比如可以做selenium等自动化测试、接口自动化测试(pytest+requests);6.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)等;7.可以很好的和jenkins集成;
telnetlib是Python中专门提供,用来完成基于telnet协议的通信功能。可用于所有支持telnet协议的设备进行telnet远程登录和下发指令。
allure是一款轻量级并且非常灵活的开源测试报告框架。它支持绝大多数测试框架,例如TestNG、Pytest、JUint等。它简单易用,易于集成。
2、测试工具使用流程
如图1所示,本测试方法包括如下步骤:
(1)安装requirements.txt文件中的环境依赖包配置,完成python环境配置;
(2)在config目录下的config.ini文件中完成项目需要的变量配置,包括telnet账号密码、默认wifi账号密码配置、默认WAN联网配置、电脑MAC地址配置;
(3)运行run_main.py脚本进行指定项目目录下的所有符合pytest规范的测试用例;
(4)测试用例执行完成之后会将报告以json的格式保存在report目录下;
(5)使用自动化报告生成工具allure将json转换成html格式输出。
3、模块封装
本例采用handle_getdevdata.py模块用于获取DUT实际配置;handle_telnet_base.py和handle_telnet_excute.py提供了基于telnet协议的各类通信方法;handle_excelconfig.py、handle_exceldata.py和handle_getexceldata.py提供excle相关数据驱动的操作方法;handle_wifi.py提供PC端无线网卡的扫描、连接、断开等基础操作,handle_verification提供了一部分ping、访问外网、域名解析等验证手段,一起对命令下发后设备状态进行校验。
以下对本发明的实现方法进行详细说明。
如图1所示,本发明实现测试方法包括如下步骤:
(1)初始化过程中handle_init.py会先从config.ini中读取工具相关的默认配置,对测试工具进行配置;
(2)主程序run_main.py函数执行pytest命令,执行指定项目的测试用例;
(3)调用基于xlrd和xlutils.copy库的handle_getexceldata.py读取用例数据参数;
(4)调用基于telnetlib库的handle_telnet_excute.py使用telnet远程登录待测设备DUT并下发上一步返回的ubus命令参数;
(5)在测试用例中进行相关数据项的校验,根据测试结果是否与预期一致判断该条测试用例执行结果,并记录该测试用例执行结果;
(6)判断是否有下一条测试用例,如果是,返回执行步骤(3),测试下一条测试用例,如果否,调用allure工具生成测试报告,结束。
其中,步骤(1)中,安装requirements.txt文件中的环境依赖包配置,完成python环境配置,然后在config目录下的config.ini文件中完成项目需要的变量配置,包括telnet账号密码、默认wifi账号密码配置、默认WAN联网配置、电脑MAC地址配置。
步骤(2)中,数据驱动excel操作,所述测试用例通过定义filename文件名区分不同模块的excel文档,再调用实现实例化的GetExcelData方法生成Excel测试用例集excelData,用于后续测试用例中参数的调用。
步骤(4)中,调用基于telnetlib库的handle_telnet_excute.py函数使用telnet远程登录待测设备并下发返回的ubus命令参数,具体处理过程为:
S41:从配置文件中读取变量配置信息;
S42:调用telnetlib库的open方法函数;
S43:输入用户名密码后输入相关指令进入命令模式;
S44:下方从excel中读取的ubus命令。
步骤(5)中,在测试用例中进行相关数据项的校验,校验步骤包括如下子步骤:
S51:判断校验命令返回值是否与预期保持一致,如果是,执行步骤S52,如果否,执行步骤S54;
S52:设置命令使用对应查询命令查看返回值是否下发成功,如果是,执行步骤S53,否则,执行步骤S54;
S53:调用函数校验配置是否实际生效,如果是,标记测试用例执行成功,然后执行步骤S6,如果否,执行步骤S54;
S54:标记该条测试用例执行失败,并记录错误日志,然后执行步骤S6。
步骤S6中,所述测试用例执行完成之后会将报告以json的格式保存在指定目录下,然后使用自动化报告生成工具将json格式转换成html格式输出。本地通过浏览器打开测试报告如图2所示。
本发明与目前的常规测试相比,有以下的优点:
(1)降低ubus测试项的门槛,无需深入了解ubus命令行的详细实现,简单学习工具使用就可以完成ubus测试;
(2)常规测试需要机械式的重复操作,耗时长且枯燥,使用本工具可以提升效率,节省人力;
(3)常规手工测试复次数较多,有时手动会出现误操作导致测试结果不准确,自动化脚本在模块之间进行环境清理,稳定输出测试结果,降低漏测率和复测率;
(4)常规测试执行完之后没有记录存档,工具执行完不仅会输出完整的测试报告,还有具体测试的日志文件,方便后续问题回溯跟踪。
以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。
Claims (7)
1.一种ubus命令行自动化测试方法,其特征在于,包括如下步骤:
S1:初始化,配置测试用环境和变量信息;
S2:获取测试命令,执行指定项目下的测试用例;
S3:调用函数,从指定项目目录下读取需要下发的ubus命令;
S4:远程登录待测试设备,然后下发ubus命令;
S5:在测试用例中进行相关数据项的校验,根据测试结果是否与预期一致判断该条测试用例执行结果,并记录该测试用例执行结果;
S6:判断是否有下一条测试用例,如果是,返回执行步骤S3,测试下一条测试用例,如果否,生成测试报告,结束。
2.根据权利要求1所述的ubus命令行自动化测试方法,其特征在于:步骤S5中,判断步骤包括如下子步骤:
S51:判断校验命令返回值是否与预期保持一致,如果是,执行步骤S52,如果否,执行步骤S54;
S52:设置命令使用对应查询命令查看返回值是否下发成功,如果是,执行步骤S53,否则,执行步骤S54;
S53:调用函数校验配置是否实际生效,如果是,标记测试用例执行成功,然后执行步骤S6,如果否,执行步骤S54;
S54:标记该条测试用例执行失败,并记录错误日志,然后执行步骤S6。
3.根据权利要求1或2所述的ubus命令行自动化测试方法,其特征在于:步骤S1中,安装requirements.txt文件中的环境依赖包配置,完成python环境配置,然后在config目录下的config.ini文件中完成项目需要的变量配置,包括telnet账号密码、默认wifi账号密码配置、默认WAN联网配置、电脑MAC地址配置。
4.根据权利要求3所述的ubus命令行自动化测试方法,其特征在于:步骤S6中,所述测试用例执行完成之后会将报告以json的格式保存在指定目录下,然后使用自动化报告生成工具将json格式转换成html格式输出。
5.根据权利要求4所述的ubus命令行自动化测试方法,其特征在于:步骤S2中,所述测试用例通过定义filename文件名区分不同模块的excel文档,再调用实现实例化的GetExcelData方法生成Excel测试用例集excelData,用于后续测试用例中参数的调用。
6.根据权利要求5所述的ubus命令行自动化测试方法,其特征在于:步骤S4中,调用基于telnetlib库的handle_telnet_excute.py函数使用telnet远程登录待测设备并下发返回的ubus命令参数,具体处理过程为:
S41:从配置文件中读取变量配置信息;
S42:调用telnetlib库的open方法函数;
S43:输入用户名密码后输入相关指令进入命令模式;
S44:下方从excel中读取的ubus命令。
7.一种实现权利要求1-6任一项所述的ubus命令行自动化测试方法的系统,其特征在于,包括:
配置模块:用于配置测试用环境和变量信息;
执行模块:用于当获取测试命令后,执行指定项目下的测试用例;
读取模块:用于从指定项目目录下读取需要下发的ubus命令;
下方命令模块:用于远程登录待测试设备,然后下发ubus命令;
校验模块:用于在测试用例中进行相关数据项的校验,根据测试结果是否与预期一致判断该条测试用例执行结果,并记录该测试用例执行结果;
判断模块:用于判断是否还有下一条测试用例;
报告生成模块:用于生成测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110243851.9A CN113032247A (zh) | 2021-03-05 | 2021-03-05 | 一种ubus命令行自动化测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110243851.9A CN113032247A (zh) | 2021-03-05 | 2021-03-05 | 一种ubus命令行自动化测试方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113032247A true CN113032247A (zh) | 2021-06-25 |
Family
ID=76468157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110243851.9A Pending CN113032247A (zh) | 2021-03-05 | 2021-03-05 | 一种ubus命令行自动化测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032247A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806150A (zh) * | 2021-08-16 | 2021-12-17 | 济南浪潮数据技术有限公司 | 一种存储服务器远程测试的方法、系统、设备和存储介质 |
CN115080398A (zh) * | 2022-06-21 | 2022-09-20 | 徐工汉云技术股份有限公司 | 一种接口自动化测试系统及方法 |
CN115080572A (zh) * | 2022-07-20 | 2022-09-20 | 四川长虹电器股份有限公司 | 媒资检索接口自动化回归测试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1555014A (zh) * | 2003-12-26 | 2004-12-15 | 中兴通讯股份有限公司 | 一种人机命令测试方法 |
CN105183649A (zh) * | 2015-09-08 | 2015-12-23 | 武汉虹信通信技术有限责任公司 | 一种用于自动化测试的自动telnet方法及系统 |
CN107092558A (zh) * | 2017-04-12 | 2017-08-25 | 东华大学 | 一种命令行界面命令集合自动化测试系统和方法 |
-
2021
- 2021-03-05 CN CN202110243851.9A patent/CN113032247A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1555014A (zh) * | 2003-12-26 | 2004-12-15 | 中兴通讯股份有限公司 | 一种人机命令测试方法 |
CN105183649A (zh) * | 2015-09-08 | 2015-12-23 | 武汉虹信通信技术有限责任公司 | 一种用于自动化测试的自动telnet方法及系统 |
CN107092558A (zh) * | 2017-04-12 | 2017-08-25 | 东华大学 | 一种命令行界面命令集合自动化测试系统和方法 |
Non-Patent Citations (1)
Title |
---|
徐彩霞: "基于Python的CLI自动化测试方法的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806150A (zh) * | 2021-08-16 | 2021-12-17 | 济南浪潮数据技术有限公司 | 一种存储服务器远程测试的方法、系统、设备和存储介质 |
CN113806150B (zh) * | 2021-08-16 | 2024-02-13 | 济南浪潮数据技术有限公司 | 一种存储服务器远程测试的方法、系统、设备和存储介质 |
CN115080398A (zh) * | 2022-06-21 | 2022-09-20 | 徐工汉云技术股份有限公司 | 一种接口自动化测试系统及方法 |
CN115080572A (zh) * | 2022-07-20 | 2022-09-20 | 四川长虹电器股份有限公司 | 媒资检索接口自动化回归测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113032247A (zh) | 一种ubus命令行自动化测试方法及系统 | |
CN112463580B (zh) | 基于虚拟化装置的测试系统及其方法 | |
CN109902017A (zh) | 一种基于RobotFramework测试Dubbo接口的方法及终端 | |
CN111240955A (zh) | Http接口自动化测试方法及装置、存储介质、电子设备 | |
CN108923997B (zh) | 一种基于python的云服务节点自动测试方法及装置 | |
CN111831553B (zh) | 一种多功能集成自动仿真测试的测试系统及测试方法 | |
CN110543400A (zh) | 一种服务器测试平台、服务器配置信息测试方法及系统 | |
CN112269697B (zh) | 一种设备存储性能测试方法、系统及相关装置 | |
CN114741283A (zh) | 一种基于python设计的接口自动化测试方法及装置 | |
CN112115051A (zh) | 应用的页面遍历探测方法、装置、设备及可读存储介质 | |
CN111078547A (zh) | 一种python通用app软件自动化测试框架系统 | |
CN111563042A (zh) | 一种应用于Wi-Fi5芯片的无线性能测试系统及方法 | |
CN115827358A (zh) | 一种pfr功能的自动化测试系统、方法、装置及存储介质 | |
CN117931666A (zh) | 一种软件无线电通信设备核心框架测试系统及方法 | |
WO2024001594A1 (zh) | 算子开发、处理方法、装置、电子设备、系统及存储介质 | |
CN111813659A (zh) | 基于ui和接口自动化测试方法、装置、设备及可读介质 | |
CN112231206A (zh) | 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台 | |
KR100758850B1 (ko) | 이동통신 시스템에서 테스트 스크립트를 이용한 테스트를위한 장치 및 방법 | |
CN114578790A (zh) | 一种无人机飞控自动测试方法、系统、设备和介质 | |
CN110727591A (zh) | 一种基于建模页面自动化测试方法 | |
CN112698998B (zh) | 一种可持续集成的arm服务器出厂测试方法 | |
CN106526360A (zh) | 一种基于mms远程调控保护装置的测试方法 | |
CN111190822A (zh) | 一种自动化测试分布式系统软件的方法及装置 | |
Na et al. | Extension and application based on robot testing framework | |
CN116577809A (zh) | 一种通用的gnss卫星接收模块自动化测试软件及方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210625 |
|
RJ01 | Rejection of invention patent application after publication |