一种软件自动化测试系统及方法与流程

文档序号:23052517发布日期:2020-11-25 17:28阅读:120来源:国知局
一种软件自动化测试系统及方法与流程

本发明涉及软件测试技术领域,更具体说,涉及一种具有较强兼容性、扩展性的软件自动化测试系统及方法。



背景技术:

软件自动化测试一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预设条件应包括正常条件和异常条件。一般由程序员根据测试目标而有针对性地编写的测试脚本和测试用例,通过运行测试脚本,自动读取测试用例,然后自动向测试目标发起测试动作,通过自动判别测试结果是否与预期结果一致,最终生成测试报告(有时也保留脚本运行的日志)并向测试者反馈测试结果。

自动化测试是把以人为驱动的软件测试行为转化为机器自动执行的一种过程。通常,在设计了测试用例并通过评审之后,测试人员根据测试用例中描述的规程一步步执行测试程序,得到实际结果与期望结果的比较。在软件测试过程中,为了节省人力、时间或硬件资源、提高测试效率,便引入了自动化测试的概念。

而api接口的自动化测试,一般是指测试脚本通过某种特定的通信协议,根据预先编写好的api测试用例。每一条用例的测试中,测试脚本向目标测试对象发送指定的请求数据,然后等待目标测试对象响应,根据判别响应结果与预定结果是否一致来确认测试是否通过。

目前现有的大多数api自动化测试软件,基本都是针对某一个特定的系统软件,或某一个特定的软件产品,或某一种特定的平台上进行,或使用某一种特定协议的自动化测试。对于不同的产品、不同的协议、不同的平台,需要编写不同的测试脚本。虽然这比传统的人工测试要方便高效了很多,但兼容性、可扩展性、通用性还是比较差。

另外,现有大多数api自动化测试软件,基本需要由专业人员进行操作,大多数使用命令行终端进行操作,而脚本运行的日志信息、测试报告结果的展示等都不是非常友好,基本只有专业人员才能看懂的,对于外行人或者非技术人员来说,是比较难适应这种测试模式的。



技术实现要素:

本发明要解决的技术问题在于,现有的自动化测试软件,兼容性、可扩展性差,并且测试报告结果不友好。

针对上述问题,提出一种软件自动化测试系统及方法。

一种软件自动化测试系统,包括多个收发器、测试控制器、excel数据解析器、用例库、配置库、qtui、测试结果导出器;

收发器,用以根据特定协议对配置信息进行核验、对于无效的配置则抛出异常,当配置信息有效时,向目标设备发起连接请求,若连接成功则将消息返回给测试控制器,若超时或无法连接则抛出异常信号;

测试控制器,用以根据不同协议选用不同的通道进行设备连接、实时更新测试状态及运行状态信息、从用例库中读入用例、初始化测试状态位和运行状态位、判断测试进程并创建子线程及根据测试模式对测试过程进行控制;

excel数据解析器,用以将已编写好的excel测试用例文件分别解析出信息项、配置项和用例列表,并最终以testfile对象形式保存为单例指针;

用例库,用以存储测试用例,并进行标记;

配置库,用以存储多种协议接口的配置信息;

qtui,用以测试员与所述测试系统进行交互;

测试结果导出器,用以根据设定的文件路径和保存的文件格式、对不同的导出模式产生的测试文件进行分发。

第二方面,提出一种软件自动化测试方法,包括步骤:

s1、载入测试用例文件,读入、渲染测试用例文件信息;

s2、根据目标设备接口,选择相应收发器进行通信连接;

s3、测试控制器从用例库中读入可用用例,从测试过程进行控制并实时反馈测试及运行状态;

s4、测试结果导出器,根据设定的文件路径和保存的文件格式对不同的导出模式产生的测试文件进行分发。

结合第二方面,第一种可能的实施方式中,所述步骤s1包括子步骤:

s11、初始化日志视图和加载日志模板;

s12、对加载的用例文件进行解析;

s13、qtui对已解析出的用例文件信息进行显示。

结合第二方面的第一种可能的实施方式,第二种可能的实施方式中,所述步骤s12包括子步骤:

s121、将用例文件拖拽至qtui中的打开窗口中;

s122、将所述用例文件分别解析出信息项、配置项和用例列表;

s123、将所述解析信息以testfile对象指针的形式返回给打开窗口。

结合第二方面的第二种可能的实施方式,第三种可能的实施方式中,所述步骤s13包括子步骤:

s131、所述打开窗将testfile对象通过信号反馈形式传送给qtui中的主窗口;

s132、所述主窗口读入testfile对象中的信息,并进行相应的初始化和显示;

s133、所述主窗口根据测试用例列表在报告视图中将每一个用例的信息渲染出来。

结合第二方面,第四种可能的实施方式中,所述步骤s2包括子步骤:

s21、qtui中的主窗口调用测试控制器的“connect_device”方法,所述测试控制器根据不同的协议选用不同的通道并根据不同通道从配置库中读取相应的配置项;

s22、调用相应的收发器进行设备连接。

结合第二方面的第四种可能的实施方式,第五种可能的实施方式中,所述步骤s22、包括子步骤:

s221、收发器中首先对配置信息进行核验,对于无效的配置则抛出异常;

s222、当配置信息有效时,收发器则向目标设备发起连接请求,若连接成功则将消息返回给控制器,若超时或无法连接则抛出异常;

s223、测试控制器在接收到收发器的消息或异常后,更新测试状态位和运行状态位。

结合第二方面,第六种可能的实施方式中,所述步骤s3包括子步骤:

s31、qtui中的主窗口调用测试控制器的“start”方法,所述测试控制器从用例库中读入所有标记为可用的用例;

s32、用例索引从1开始,判定是否测试完毕:

如果索引大于用例总数,则判定为测试完毕,终止测试,

如果索引不大于用例总数,则根据索引从用例列表中取出用例对象,创建测试子线程并连接信号槽并启动子线程。

结合第二方面,第七种可能的实施方式中,所述步骤s32包括子步骤:

s321、所述子线程发送测试状态信息到测试控制器,所述测试控制器将测试状态信息数据传输给qtui的主窗口;

s322、用户通过qtui主窗口或所述测试控制器根据所述测试状态信息控制子线程测试进程。

结合第二方面的第七种可能的实施方式,第八种可能的实施方式中,所述步骤s322包括子步骤:

s3221、若所述测试控制器收到失败或异常信号时,则先判断:若开启了自动暂停模式,测试控制器自行暂停测试,等待用户手动处理后再继续测试,

s3222、若未开启自动暂停模式,则测试控制器将用例索引自增1,并且重复上述步骤以测试下一个新的用例,直到所有用例测试完毕;

s3223、若测试控制器接收到的信号为手动测试模式,所述主窗口调用控制器的“pause”方法以暂停测试的运行。

实施本发明所述的一种软件自动化测试系统及方法,使用qtui接口和python开发语言,支持多平台系统环境(含windows环境、linux桌面环境、macos环境、安卓以及具有图形界面的其他嵌入式操作系统)。通过采用测试控制器和qtui接口分离的方式,在没有图形界面的操作系统中,也能通过命令行方式运行系统软件。本申请支持uart、http、telnet三种协议,无论测试目标是何种形式、何种平台,只要使用这三种协议的任意一种,编写好相应的配置信息(如端口号、主机名等)和测试用例,即可进行自动化测试。用户可直观地分辨不同的运行状态和测试结果。通过采用html交互形式输出报告,用户可方便地对测试用例进行筛选和展开查看详情,避免信息全部展开带来的视觉疲劳。通过实施本发明,实现了软件的易用性、测试目标通用性、多协议支持、多平台支持以及二次开发的可扩展性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明中的一种软件自动化测试系统实施例示意图;

图2为本发明中的一种软件自动化测试方法实施例示意图;

图3为本发明中的一种软件自动化测试方法实施例步骤s1的子步骤流程示意图;

图4为本发明中的一种软件自动化测试方法实施例步骤s12的子步骤流程示意图;

图5为本发明中的一种软件自动化测试方法实施例步骤s13的子步骤流程示意图;

图6为本发明中的一种软件自动化测试方法启动程序序列图;

图7为本发明中的一种软件自动化测试方法实施例步骤s2的子步骤流程示意图;

图8为本发明中的一种软件自动化测试方法实施例步骤s22的子步骤流程示意图;

图9为本发明中的一种软件自动化测试方法实施例中与uart测试目标设备建立连接的序列图;

图10为本发明中的一种软件自动化测试方法实施例步骤s3的子步骤流程示意图;

图11为本发明中的一种软件自动化测试方法实施例步骤s32的子步骤流程示意图;

图12为本发明中的一种软件自动化测试方法实施例步骤s322的子步骤流程示意图;

图13为本发明中的一种软件自动化测试方法实施例自动化测试序列图;

图14为本发明中的一种软件自动化测试方法实施例日志和报告导出序列图;

图15为本发明中的一种软件自动化测试系统暂停实施例示意图;

附图编号说明:110——测试控制器、120——excel数据解析器、130——uart接口收发器、140——http接口收发器、150——telnet接口收发器、160——用例库、170——配置库、180——qtui、190——测试结果导出器。具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明要解决的技术问题在于,现有的自动化测试软件,兼容性、可扩展性差,并且测试报告结果不友好。

针对上述问题,提出一种软件自动化测试系统及方法。

实施例1,系统实施例。

一种软件自动化测试系统,如图1,图1为本发明中的一种软件自动化测试系统实施例示意图,包括多个收发器、测试控制器110、excel数据解析器120、用例库160、配置库170、qtui180、测试结果导出器190。

收发器,用以根据特定协议对配置信息进行核验、对于无效的配置则抛出异常,当配置信息有效时,向目标设备发起连接请求,若连接成功则将消息返回给测试控制器110,若超时或无法连接则抛出异常信号。

本实施例中,优选地,收发器包括uart接口收发器130、http接口收发器140及telnet接口收发器150,上述多个接口收发器向对应协议接口的目标设备收发器通信连接,以此来支持多种协议的目标设备软件自动化测试。

测试控制器110,用于根据不同协议选用不同的通道进行设备连接、实时更新测试状态及运行状态信息、从用例库160中读入用例、初始化测试状态位和运行状态位、判断测试进程并创建子线程及根据测试模式对测试过程进行控制。

excel数据解析器120,excel数据解析器,用以将已编写好的excel测试用例文件分别解析出信息项、配置项和用例列表,并最终以testfile对象形式保存为单例指针;用例库160,用以存储测试用例,并进行标记。

配置库170,用以存储多种协议接口的配置信息。

qtui180,用以测试员与所述测试系统进行交互,qtui180即为qt图形界面通过qt槽函数接收测试系统各个模块的信号,对于没有图形界面的操作系统,图形界面接口则不启用,直接在程序入口文件中采用cli编程方式调用测试控制器110进行自动化测试,此时也同样可以实现完整的软件功能。

测试结果导出器190,用以根据设定的文件路径和保存的文件格式、对不同的导出模式产生的测试文件进行分发。如果是导出日志,则操作的是日志视图控件,如果是导出测试报告,则操作的是报告视图控件;如果是导出html格式,则操作的是“to_html”方法,如果是导出pdf格式,则操作的是“to_pdf”格式。除了导出pdf格式的测试报告时需要在报告视图控件中展开所有用例详情外,其他的均直接调用视图基类的方法进行处理。

本实施例系统支持多平台运行:windows环境、linux桌面环境、macos环境、安卓以及具有图形界面的其他嵌入式操作系统。同时支持多种信息传输协议及多个目标测试设备:uart、http、telnet三种协议并且提供高度可扩展的开发框架,可方便进行功能扩展、方便添加新的协议支持。另外系统使用用户体验良好的qt图形操作界面,而测试用例文件则使用excel文档,大大提高了易用性,使非专业测试人员都能够非常容易上手使用本软件进行自动化测试。

方法实施例

一种软件自动化测试方法,如图2,图2为本发明中的一种软件自动化测试方法实施例示意图;包括步骤:

s1、载入测试用例文件,读入、渲染测试用例文件信息;

优选地,如图3,图3为本发明中的一种软件自动化测试方法实施例步骤s1的子步骤流程示意图,所述步骤s1包括子步骤:

s11、初始化日志视图和加载日志模板;s12、对加载的用例文件进行解析。

优选地,如图4,图4为本发明中的一种软件自动化测试方法实施例步骤s12的子步骤流程示意图,所述步骤s12包括子步骤:

s121、将用例文件拖拽至qtui180中的打开窗口中;s122、将所述用例文件分别解析出信息项、配置项和用例列表;s123、将所述解析信息以testfile对象指针的形式返回给打开窗口。

s13、qtui180对已解析出的用例文件信息进行显示。

优选地,如图5,图5为本发明中的一种软件自动化测试方法实施例步骤s13的子步骤流程示意图,所述步骤s13包括子步骤:

如图6,图6为本发明中的一种软件自动化测试方法启动程序序列图,s131、所述打开窗将testfile对象通过信号反馈形式传送给qtui180中的主窗口;s132、所述主窗口读入testfile对象中的信息,并进行相应的初始化和显示;s133、所述主窗口根据测试用例列表在报告视图中将每一个用例的信息渲染出来。

s2、根据目标设备接口,选择相应收发器进行通信连接;

优选地,如图7,图7为本发明中的一种软件自动化测试方法实施例步骤s2的子步骤流程示意图,所述步骤s2包括子步骤:s21、qtui180中的主窗口调用测试控制器110的“connect_device”方法,所述测试控制器110根据不同的协议选用不同的通道并根据不同通道从配置库170中读取相应的配置项;s22、调用相应的收发器进行设备连接。

优选地,如图8,图8为本发明中的一种软件自动化测试方法实施例步骤s22的子步骤流程示意图,所述步骤s22、包括子步骤:

s221、收发器中首先对配置信息进行核验,对于无效的配置则抛出异常;s222、当配置信息有效时,收发器则向目标设备发起连接请求,若连接成功则将消息返回给控制器,若超时或无法连接则抛出异常;s223、测试控制器110在接收到收发器的消息或异常后,更新测试状态位和运行状态位。如图9,图9为本发明中的一种软件自动化测试方法实施例中与uart测试目标设备建立连接的序列图。

s3、测试控制器110从用例库160中读入可用用例,从测试过程进行控制并实时反馈测试及运行状态;

优选地,如图10,图10为本发明中的一种软件自动化测试方法实施例步骤s3的子步骤流程示意图,所述步骤s3包括子步骤:s31、qtui180中的主窗口调用测试控制器110的“start”方法,所述测试控制器110从用例库160中读入所有标记为可用的用例;s32、用例索引从1开始,判定是否测试完毕:如果索引大于用例总数,则判定为测试完毕,终止测试,如果索引不大于用例总数,则根据索引从用例列表中取出用例对象,创建测试子线程并连接信号槽并启动子线程。

优选地,如图11,图11为本发明中的一种软件自动化测试方法实施例步骤s32的子步骤流程示意图,所述步骤s32、包括子步骤:s321、所述子线程发送测试状态信息到测试控制器110,所述测试控制器110将测试状态信息数据传输给qtui180的主窗口;s322、用户通过qtui180主窗口或所述测试控制器110根据所述测试状态信息控制子线程测试进程。

优选地,如图12,图12和图13为本发明中的一种软件自动化测试方法实施例步骤s322的子步骤流程示意图,图13为本发明中的一种软件自动化测试方法实施例自动化测试序列图,所述步骤s322包括子步骤:s3221、若所述测试控制器110收到失败或异常信号时,则先判断:若开启了自动暂停模式,测试控制器110自行暂停测试,等待用户手动处理后再继续测试,s3222、若未开启自动暂停模式,则测试控制器110将用例索引自增1,并且重复上述步骤以测试下一个新的用例,直到所有用例测试完毕;s3223、若测试控制器110接收到的信号为手动测试模式,所述主窗口调用控制器的“pause”方法以暂停测试的运行,如图15,图15为本发明中的一种软件自动化测试系统暂停实施例示意图。

s4、测试结果导出器190,根据设定的文件路径和保存的文件格式对不同的导出模式产生的测试文件进行分发,图14为本发明中的一种软件自动化测试方法实施例日志和报告导出序列图。

实施本发明所述的一种软件自动化测试系统及方法,使用qtui180接口和python开发语言,支持多平台系统环境(含windows环境、linux桌面环境、macos环境、安卓以及具有图形界面的其他嵌入式操作系统)。通过采用测试控制器110和qtui180接口分离的方式,在没有图形界面的操作系统中,也能通过命令行方式运行系统软件。本申请支持uart、http、telnet三种协议,无论测试目标是何种形式、何种平台,只要使用这三种协议的任意一种,编写好相应的配置信息(如端口号、主机名等)和测试用例,即可进行自动化测试。用户可直观地分辨不同的运行状态和测试结果。通过采用html交互形式输出报告,用户可方便地对测试用例进行筛选和展开查看详情,避免信息全部展开带来的视觉疲劳。通过实施本发明,实现了软件的易用性、测试目标通用性、多协议支持、多平台支持,以及二次开发的可扩展性。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1