CN111782513A - 基于dll的卫星地面通用自动化测试方法 - Google Patents
基于dll的卫星地面通用自动化测试方法 Download PDFInfo
- Publication number
- CN111782513A CN111782513A CN202010579828.2A CN202010579828A CN111782513A CN 111782513 A CN111782513 A CN 111782513A CN 202010579828 A CN202010579828 A CN 202010579828A CN 111782513 A CN111782513 A CN 111782513A
- Authority
- CN
- China
- Prior art keywords
- test
- dll
- subclass
- test item
- item
- 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.)
- Granted
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/3688—Test management for test execution, e.g. scheduling of test suites
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
本发明涉及一种基于DLL的卫星地面通用自动化测试方法,引入了DLL技术,各测试项目子类通过继承测试方法基类中所需实现的虚函数接口,利用C++语言将测试项目子类编译生成DLL文件。不同的测试项目分别以独立的DLL文件形式存在,其他通用自动化测试平台可对这些DLL文件进行加载和卸载,完成对某一测试项目的添加与删除。其中,测试项目子类DLL主要通过继承测试方法基类中的Initial和Run两个抽象方法,实现对新的测试项目子类的开发。Initial方法包括对卫星地面测试软件环境的初始化和准备操作,Run方法包括对目标T&M仪器的参数配置和测试数据的采集操作。以上两函数方法为基于本发明通用自动化测试方法的二次扩展开发提供了便利。
Description
技术领域
本发明涉及航天地面测试领域,尤其涉及一种基于动态链接库(Dynamic LinkLibrary,DLL)的卫星地面通用自动化测试方法。
背景技术
卫星地面测试的目的是需要在规定研发周期内全面有效地检测出卫星产品可能存在的问题和设计缺陷,给出高可信度和有价值的结论,为卫星的研制提供有力的技术支撑,保障卫星产品的稳定在轨运行。近些年,越来越多的专用型卫星地面测试方法和软件被研发出来,但此类方法和软件普遍型号针对性较强,不同卫星型号之间大多不通用。基于此,本发明提出基于动态链接库(Dynamic Link Library,DLL)技术的卫星地面通用自动化测试方法。因为DLL拥有一个独立的自身文件,用以存储库中的函数,所以本发明实现了将不同的卫星测试项目编译为独立DLL文件方式,其他通用自动化测试平台可对这些测试项目DLL文件进行动态加载和卸载,最终实现基于其他通用自动化测试平台的调用,满足了对卫星地面测试中不同型号不同项目的支持,实现了卫星地面测试的通用性。
发明内容
要解决的技术问题
现存技术中主要存在的问题是采用的方法或工具不具备良好的通用性,所支持的卫星地面测试型号较少且功能通用性不佳。为了解决现有技术缺陷,因此本发明提出了一种基于DLL的卫星地面通用自动化测试方法。
技术方案
一种基于DLL的卫星地面通用自动化测试方法,其特征在于步骤如下:
步骤1:利用Visual Studio 2017及以上版本IDE,新建名为TestMethod抽象类库文件,为了向测试工程师提供必要的测试监控数据,需在TestMethod中声明关键参数和绘图线程,用于测试项目子类继承并使用;提供TestMethod构造函数,添加Initial和Run抽象方法;Initial方法为布尔类型虚函数,包括对测试关键参数和监控线程的初始化和准备等操作,Run方法为布尔类型空抽象函数;
步骤2:在测试项目子类类名前添加特性,便于后期查找调用;为了让测试项目子类能够继承TestMethod基类,必须在项目子类类名后添加对TestMethod基类的继承关系;然后添加测试项目子类构造函数和重写基类中的Initial和Run方法;
步骤3:对于不同指标测试项目子类,重写Initial方法内容包括加载测试项目参数配置xml文件,其中存储着T&M虚拟仪器信息和其激励指令信息;根据测试方法需求规则建立测试报表对象和路径;给测试监控中的关键参数线程赋初值,关键参数为测试项目子类中的重要参数,是保证测试有效性和安全性的重要参数指标,不同测试项目子类有不同类型和数量的关键参数;
步骤4:对于不同指标测试项目子类,典型场景下重写Run方法内容包括以下10个部分:
1)通用自动化测试环境与目标T&M仪器建立通信连接;
2)根据当前测试项目所属测试方法对遥控遥测指令序列进行赋值;
3)初始化当前目标T&M仪器并执行自检;
4)初始化自动测试软件环境;
5)初始化测试项目子类中的关键参数名称和遥控遥测指令;
6)按序向目标T&M仪器发送2)中的遥控遥测指令序列;
7)回读测试数据并以一定方式呈现当前测试项关键参数,并周期性刷新参数;
8)根据当前测试项目所属测试方法进行遥测数据的可视化处理;
9)保存8)中可视化测试数据;
10)保存当前测试结果数据并嵌入测试报表;
步骤5:在完成对上述测试项目子类的开发与编译,并经过详尽测试后,IDE会自动编译生成该测试项目子类DLL文件,用户可通过上层通用自动化测试平台中的测试方法库或相似功能模块实现对此类DLL文件的管理,实现上层平台对下层测试项目DLL文件的初步调用;
步骤6:当用户需要使用某测试项目时,上层通用自动化测试平台会通过反射获取各测试项目DLL文件中的Attribute信息,并以适合方式呈现给用户,用户选择需要运行的测试项目并生成测试序列,上层通用自动化测试平台会自动调用测试项目DLL文件中的Initial和Run方法,进而完成对该测试项目的完整调用和执行。
有益效果
为了进一步提高卫星地面测试软件平台的通用性,本发明引入了DLL技术,各测试项目子类通过继承测试方法基类中所需实现的虚函数接口,利用C++语言将测试项目子类编译生成DLL文件。不同的测试项目分别以独立的DLL文件形式存在,其他通用自动化测试平台可对这些DLL文件进行加载和卸载,完成对某一测试项目的添加与删除。其中,测试项目子类DLL主要通过继承测试方法基类中的Initial和Run两个抽象方法,实现对新的测试项目子类的开发。Initial方法包括对卫星地面测试软件环境的初始化和准备操作,Run方法包括对目标T&M仪器的参数配置和测试数据的采集操作。以上两函数方法为基于本发明通用自动化测试方法的二次扩展开发提供了便利。
本发明利用.NET多线程编程中的AutoResetEvent和ManualResetEvent两个类,可实现对以上测试流程的暂停和继续功能,配合通用自动化测试方法中的异常处理规则,可进一步提高该测试方法的安全性。
以卫星地面谐波测试项目为例,应用本发明的有益效果表现如表1所示:
表1.应用该DLL卫星地面通用自动化测试方法的平台与传统卫星地面测试系统对比表
附图说明
图1为本发明所设计的基于DLL的卫星地面通用自动化测试方法的测试项目DLL文件生成流程图。
图2为应用本发明所设计的基于DLL的卫星地面通用自动化测试方法的平台调用测试项目DLL文件流程图。
具体实施方式
现结合实施例、附图对本发明作进一步描述:
(1)首先给出本文生成测试项目DLL文件的相关步骤:
a)创建入口点,利用Visual Studio 2017及以上版本IDE,选择菜单栏“文件”选项,然后新建项目,选择动态链接库(DLL),完成测试项目子类DLL项目的新建;
b)创建导出,向所有需要导出的DLL函数中添加关键字__declspec(dllexport),要在应用程序中使用导出的DLL函数,必须使用__declspec(dllexport)来声明要导入的各个函数;
c)然后,引用一个包含define语句和ifdef语句的头文件,以便分隔导出语句和导入语句;
d)编写DLL,通过继承测试方法TestMethod基类,创建一个它的测试项目子类。在该子类中重写TestMethod基类的Initial和Run方法;
e)生成DLL,利用IDE进行DLL项目的编译和生成,可以在项目Debug目录下看到生成的.dll文件。
(2)然后给出本文调用测试项目DLL文件的相关步骤:
在Windows操作系统中,有两种DLL文件的调用方式,一种是显式链接方式,另一种是隐式链接方式,本文采用显式链接方式。
a)首先调用LoadLibrary函数,它会把指定的测试项目DLL模块载入内存中。其语法为:Function LoadLibirary(LibFileName:PChar):Thandle;该函数的参数列表指定将要加载的测试项目DLL名称;
b)随后调用GetProcAddress函数,它会获取待调函数地址。该函数有两个参数,第一个参数Module指通过LoadLibrary函数获得的函数库模块句柄,Module=NULL表示引用当前模块。第二个参数ProcName是一个string型指针,该指针指向一个以NULL结尾的string类型函数名,或是与指定函数相关联的序数值。大部分情况下该参数的实参为函数名,此函数名必须与测试项目DLL中相应的函数名一致;
c)最后调用FreeLibrary函数,它会释放掉已加载到内存中的DLL。语法如下:Function FreeLibrary(Module:THandle);参数Module表示已经获得的测试项目DLL模块句柄,该值由LoadLibrary函数返回。在测试项目DLL调用过程中,为了保证应用程序结束并释放后内存中无冗余库模块,需在调用LoadLibrary函数后,通过立即调用对应的释放库模块的FreeLibrary函数,对库模块进行一次释放。
至此,完成了基于DLL的卫星地面通用自动化测试方法的全部步骤。
Claims (1)
1.一种基于DLL的卫星地面通用自动化测试方法,其特征在于步骤如下:
步骤1:利用Visual Studio 2017及以上版本IDE,新建名为TestMethod抽象类库文件,为了向测试工程师提供必要的测试监控数据,需在TestMethod中声明关键参数和绘图线程,用于测试项目子类继承并使用;提供TestMethod构造函数,添加Initial和Run抽象方法;Initial方法为布尔类型虚函数,包括对测试关键参数和监控线程的初始化和准备等操作,Run方法为布尔类型空抽象函数;
步骤2:在测试项目子类类名前添加特性,便于后期查找调用;为了让测试项目子类能够继承TestMethod基类,必须在项目子类类名后添加对TestMethod基类的继承关系;然后添加测试项目子类构造函数和重写基类中的Initial和Run方法;
步骤3:对于不同指标测试项目子类,重写Initial方法内容包括加载测试项目参数配置xml文件,其中存储着T&M虚拟仪器信息和其激励指令信息;根据测试方法需求规则建立测试报表对象和路径;给测试监控中的关键参数线程赋初值,关键参数为测试项目子类中的重要参数,是保证测试有效性和安全性的重要参数指标,不同测试项目子类有不同类型和数量的关键参数;
步骤4:对于不同指标测试项目子类,典型场景下重写Run方法内容包括以下10个部分:
1)通用自动化测试环境与目标T&M仪器建立通信连接;
2)根据当前测试项目所属测试方法对遥控遥测指令序列进行赋值;
3)初始化当前目标T&M仪器并执行自检;
4)初始化自动测试软件环境;
5)初始化测试项目子类中的关键参数名称和遥控遥测指令;
6)按序向目标T&M仪器发送2)中的遥控遥测指令序列;
7)回读测试数据并以一定方式呈现当前测试项关键参数,并周期性刷新参数;
8)根据当前测试项目所属测试方法进行遥测数据的可视化处理;
9)保存8)中可视化测试数据;
10)保存当前测试结果数据并嵌入测试报表;
步骤5:在完成对上述测试项目子类的开发与编译,并经过详尽测试后,IDE会自动编译生成该测试项目子类DLL文件,用户可通过上层通用自动化测试平台中的测试方法库或相似功能模块实现对此类DLL文件的管理,实现上层平台对下层测试项目DLL文件的初步调用;
步骤6:当用户需要使用某测试项目时,上层通用自动化测试平台会通过反射获取各测试项目DLL文件中的Attribute信息,并以适合方式呈现给用户,用户选择需要运行的测试项目并生成测试序列,上层通用自动化测试平台会自动调用测试项目DLL文件中的Initial和Run方法,进而完成对该测试项目的完整调用和执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010579828.2A CN111782513B (zh) | 2020-06-23 | 2020-06-23 | 基于dll的卫星地面通用自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010579828.2A CN111782513B (zh) | 2020-06-23 | 2020-06-23 | 基于dll的卫星地面通用自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782513A true CN111782513A (zh) | 2020-10-16 |
CN111782513B CN111782513B (zh) | 2022-12-02 |
Family
ID=72757066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010579828.2A Active CN111782513B (zh) | 2020-06-23 | 2020-06-23 | 基于dll的卫星地面通用自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782513B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112526255A (zh) * | 2020-11-13 | 2021-03-19 | 武汉联特科技股份有限公司 | 光模块自动化测试系统中的通用配置方法及设备 |
CN113923442A (zh) * | 2021-09-24 | 2022-01-11 | 湖北三赢兴光电科技股份有限公司 | 一种摄像模组的通用软件测试方法及系统 |
CN114528337A (zh) * | 2022-01-12 | 2022-05-24 | 南湖实验室 | 面向多源异构数据源的接口系统、通用接口及其实现方法 |
CN115640118A (zh) * | 2022-07-19 | 2023-01-24 | 信利光电股份有限公司 | 一种利用线程池提高自动化设备节拍的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067639A (en) * | 1995-11-09 | 2000-05-23 | Microsoft Corporation | Method for integrating automated software testing with software development |
CN102236602A (zh) * | 2011-07-21 | 2011-11-09 | 南京大学 | 一种可视化软件测试设计平台 |
CN106314825A (zh) * | 2016-10-12 | 2017-01-11 | 深圳航天东方红海特卫星有限公司 | 一种并行自动化卫星的综合测试系统 |
CN109885488A (zh) * | 2019-01-30 | 2019-06-14 | 上海卫星工程研究所 | 用例表驱动的卫星轨道计算软件自动化测试方法及系统 |
CN109976306A (zh) * | 2019-02-28 | 2019-07-05 | 北京空间飞行器总体设计部 | 一种基于Lua脚本的航天器遥控快速测试验证系统及方法 |
-
2020
- 2020-06-23 CN CN202010579828.2A patent/CN111782513B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067639A (en) * | 1995-11-09 | 2000-05-23 | Microsoft Corporation | Method for integrating automated software testing with software development |
CN102236602A (zh) * | 2011-07-21 | 2011-11-09 | 南京大学 | 一种可视化软件测试设计平台 |
CN106314825A (zh) * | 2016-10-12 | 2017-01-11 | 深圳航天东方红海特卫星有限公司 | 一种并行自动化卫星的综合测试系统 |
CN109885488A (zh) * | 2019-01-30 | 2019-06-14 | 上海卫星工程研究所 | 用例表驱动的卫星轨道计算软件自动化测试方法及系统 |
CN109976306A (zh) * | 2019-02-28 | 2019-07-05 | 北京空间飞行器总体设计部 | 一种基于Lua脚本的航天器遥控快速测试验证系统及方法 |
Non-Patent Citations (2)
Title |
---|
任献彬等: "基于动态链接库技术的测试程序实现方法", 《计算机测量与控制》 * |
安然等: "基于USB的卫星通用化地面测试软件的设计", 《计算机测量与控制》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112526255A (zh) * | 2020-11-13 | 2021-03-19 | 武汉联特科技股份有限公司 | 光模块自动化测试系统中的通用配置方法及设备 |
CN112526255B (zh) * | 2020-11-13 | 2024-04-02 | 武汉联特科技股份有限公司 | 光模块自动化测试系统中的通用配置方法及设备 |
CN113923442A (zh) * | 2021-09-24 | 2022-01-11 | 湖北三赢兴光电科技股份有限公司 | 一种摄像模组的通用软件测试方法及系统 |
CN114528337A (zh) * | 2022-01-12 | 2022-05-24 | 南湖实验室 | 面向多源异构数据源的接口系统、通用接口及其实现方法 |
CN114528337B (zh) * | 2022-01-12 | 2024-03-15 | 南湖实验室 | 面向多源异构数据源的接口系统、通用接口及其实现方法 |
CN115640118A (zh) * | 2022-07-19 | 2023-01-24 | 信利光电股份有限公司 | 一种利用线程池提高自动化设备节拍的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111782513B (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782513B (zh) | 基于dll的卫星地面通用自动化测试方法 | |
US8423969B2 (en) | Inheritance breakpoints for use in debugging object-oriented computer programs | |
US6401220B1 (en) | Test executive system and method including step types for improved configurability | |
US6473707B1 (en) | Test executive system and method including automatic result collection | |
US6397378B1 (en) | Test executive system and method including distributed type storage and conflict resolution | |
JP4950454B2 (ja) | テスト自動化のスタック階層化 | |
US6067641A (en) | Demand-based generation of symbolic information | |
US5911074A (en) | Process for manipulating data models used in software engineering | |
US5761510A (en) | Method for error identification in a program interface | |
US6577981B1 (en) | Test executive system and method including process models for improved configurability | |
US7051316B2 (en) | Distributed computing component system with diagrammatic graphical representation of code with separate delineated display area by type | |
US7644394B2 (en) | Object-oriented creation breakpoints | |
US20160188450A1 (en) | Automated application test system | |
US7627594B2 (en) | Runtime support for nullable types | |
Soltani et al. | A guided genetic algorithm for automated crash reproduction | |
US20110191747A1 (en) | Supporting and deploying distributed computing components | |
US10331425B2 (en) | Automated source code adaption to inject features between platform versions | |
CA2468573A1 (en) | Method and apparatus for creating software objects | |
JP2005293578A (ja) | 属性を介して制御されるテストケース継承 | |
US20080127055A1 (en) | Application proxy | |
US10990515B2 (en) | Automated unit testing in a mainframe environment | |
CN109558117B (zh) | 面向航天应用的aadl模型求精及其支持的c代码自动生成方法 | |
US10496379B2 (en) | Facilitated production of code for software testing | |
CN109284222B (zh) | 软件单元、数据处理系统中的项目测试方法、装置及设备 | |
CN114968192A (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 |