[go: up one dir, main page]

CN113032247A - 一种ubus命令行自动化测试方法及系统 - Google Patents

一种ubus命令行自动化测试方法及系统 Download PDF

Info

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
Application number
CN202110243851.9A
Other languages
English (en)
Inventor
谭红星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tenda Technology Co Ltd
Original Assignee
Shenzhen Tenda Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Tenda Technology Co Ltd filed Critical Shenzhen Tenda Technology Co Ltd
Priority to CN202110243851.9A priority Critical patent/CN113032247A/zh
Publication of CN113032247A publication Critical patent/CN113032247A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3692Test 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命令行自动化测试方法及系统
技术领域
本发明涉及一种测试工具,尤其涉及一种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命令;
校验模块:用于在测试用例中进行相关数据项的校验,根据测试结果是否与预期一致判断该条测试用例执行结果,并记录该测试用例执行结果;
判断模块:用于判断是否还有下一条测试用例;
报告生成模块:用于生成测试报告。
CN202110243851.9A 2021-03-05 2021-03-05 一种ubus命令行自动化测试方法及系统 Pending CN113032247A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 东华大学 一种命令行界面命令集合自动化测试系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
徐彩霞: "基于Python的CLI自动化测试方法的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
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