首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 外围设备 / 鼠标 / 自动化测试方法及装置、计算机设备和存储介质

自动化测试方法及装置、计算机设备和存储介质

阅读:704发布:2020-05-08

专利汇可以提供自动化测试方法及装置、计算机设备和存储介质专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种自动化测试方法,包括: 定位 输入框,并通过所述输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;读取报表内容,生成邮件并发送给相关测试人员。本发明 实施例 基于QT 框架 ,实现对测试对象的全自动化测试,降低了测试成本。,下面是自动化测试方法及装置、计算机设备和存储介质专利的具体信息内容。

1.一种自动化测试方法,其特征在于,所述方法包括:
定位输入框,并通过所述输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;
对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;
将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;
读取报表内容,生成邮件并发送给相关测试人员。
2.如权利要求1所述的自动化测试方法,其特征在于,所述定位输入框,并通过所述输入框接收输入的问题包括:
使用uiautomation库,定位输入框元素,通过pyautogui和pyperclip库模拟鼠标点击来激活输入框;
通过xlwings库获取的问题库里的标准问题,再通过pyautogui和pyperclip库将问题复制、输入到所述输入框内。
3.如权利要求1或2所述的自动化测试方法,其特征在于,所述方法还包括:
将所述问题库中问答数据进行排序,排序方式包括原始顺序、升序、降序和乱序。
4.如权利要求3所述的自动化测试方法,其特征在于,所述将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表具体包括:
将列表中的问答数据写入模板excel里,通过excel自带的函数,与模板里标准答案进行比对,将对比结果生成报表。
5.一种自动化测试装置,其特征在于,所述装置包括:
日志获取模,用于定位输入框,并通过输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;
日志分析模块,用于对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;
答案匹配模块,用于将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;
测试反馈模块,读取报表内容,生成邮件并发送给相关测试人员。
6.如权利要求1所述的自动化测试装置,其特征在于,所述日志获取模块使用uiautomation库,定位输入框元素,通过pyautogui和pyperclip库模拟鼠标点击来激活输入框;
通过xlwings库获取的问题库里的标准问题,再通过pyautogui和pyperclip库将问题复制、输入到所述输入框内。
7.如权利要求5或6所述的自动化测试装置,其特征在于,所述装置还包括:
排序模块,用于将所述问题库中问答数据进行排序,排序方式包括原始顺序、升序、降序和乱序。
8.如权利要求7所述的自动化测试装置,其特征在于,所述答案匹配模块将列表中的问答数据写入模板excel里,通过excel自带的函数,与模板里标准答案进行比对,将对比结果生成报表。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或更多个处理器;
一个或更多个存储器
一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行如权利要求1至4任一所述自动化测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一所述自动化测试方法的步骤。

说明书全文

自动化测试方法及装置、计算机设备和存储介质

技术领域

[0001] 本发明涉及软件测试技术领域,尤指一种自动化测试方法及装置、计算机设备和存储介质。

背景技术

[0002] 在软件测试过程中,为了节省人、时间或硬件资源,提高测试效率,引入了自动化测试的概念。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较结果。Windows中GUI自动化也是自动化测试中的一种,其技术主要有三类:Windows API、MSAA-Microsoft Active Accessibility和UIAutomation。
[0003] 现有技术中,使用支持QT自动化工具,如按键精灵、QTP、Ranorex Studio等,根据各个工具提供的脚本语言,结合语言自带的库,可以对于测试库进行功能的扩充,以此来丰富和扩展测试场景,提高测试的充分性。也可以根据实际使用场景把每个测试步骤做成模,引入数据驱动测试,实现用模块搭建成一个个测试场景。
[0004] 但是上文提到的工具,如按键精灵,录制的主要是坐标和鼠标移动轨迹,回放或执行用例不够稳定,且其自带的工具只能抓取句柄,用的是Windows API技术,这种技术对于QT框架开发的程序兼容性不好。而QTP、Ranorex Studio均是收费软件且价格不菲,QTP不够轻量灵活,Ranorex Studio国内资源较少,学习成本大。另外,按键精灵使用脚本语言是在VBScript的基础上发展起来的Q语言,QTP和Ranorex Studio分别是VBScript和C#或VBNet,不支持现在热且通用的python语言,需要重新熟悉,学习成本较大。而这些工具调用python脚本又相对繁琐,不好整合。多语言的使用对于工具,用例的维护也增加了不少难度。
[0005] 因此,以上所提的技术在QT开发的桌面版软件自动化测试上的易用性和兼容性不容乐观,所以一个成本低、易上手,兼容QT框架的自动化测试工具的整合及开发,显得非常急迫。

发明内容

[0006] 本发明实施例的目的是提供一种自动化测试方法及装置、计算机设备和存储介质,用以解决现有技术中基于QT框架的软件GUI自动化测试工具,不能同时兼顾稳定、经济适用和可扩展性强,但又成本低的问题。
[0007] 为解决上述问题,第一方面,本发明实施例提供了一种自动化测试方法,所述方法包括:
[0008] 定位输入框,并通过输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;
[0009] 对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;
[0010] 将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;
[0011] 读取报表内容,生成邮件并发送给相关测试人员。
[0012] 优选地,所述定位输入框,并通过输入框接收输入的问题包括:
[0013] 使用uiautomation库,定位输入框元素,通过pyautogui和pyperclip库模拟鼠标点击来激活输入框;
[0014] 通过xlwings库获取的问题库里的标准问题,再通过pyautogui和pyperclip库将问题复制、输入到所述输入框内。优选地,所述方法还包括:
[0015] 将所述问题库中问答数据进行排序,排序方式包括原始顺序、升序、降序和乱序。
[0016] 优选地,所述将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表具体包括:
[0017] 将列表中的问答数据写入模板excel里,通过excel自带的函数,与模板里标准答案进行比对,将对比结果生成报表。
[0018] 第二方面,本发明实施例还提供了一种自动化测试装置,所述装置包括:
[0019] 日志获取模块,用于定位输入框,并通过输入框接收输入的问题,对所述问题进行回答,获得问答的日志内容;
[0020] 日志分析模块,用于对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;
[0021] 答案匹配模块,用于将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;
[0022] 测试反馈模块,读取报表内容,生成邮件并发送给相关测试人员。
[0023] 优选地,所述日志获取模块使用uiautomation库,定位输入框元素,通过pyautogui和pyperclip库模拟鼠标点击来激活输入框;
[0024] 通过xlwings库获取的问题库里的标准问题,再通过pyautogui和pyperclip库将问题复制、输入到所述输入框内。
[0025] 优选地,所述装置还包括:
[0026] 排序模块,用于将所述问题库中问答数据进行排序,排序方式包括原始顺序、升序、降序和乱序。
[0027] 优选地,所述答案匹配模块将列表中的问答数据写入模板excel里,通过excel自带的函数,与模板里标准答案进行比对,将对比结果生成报表。
[0028] 第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
[0029] 一个或更多个处理器;
[0030] 一个或更多个存储器
[0031] 一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行如第一方面所述自动化测试方法的步骤。
[0032] 第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时如第一方面所述自动化测试方法的步骤。
[0033] 本发明实施例提供的自动化测试方法及装置,计算机设备和存储介质,具有以下技术效果:
[0034] 通过定位输入框,并通过输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容,将问答的日志内容转化为问答数据并进行存储;将问答数据与问答库中的标准答案进行对比,并将结果发送给相关测试人员,整个过程,通过定位输入框,自动输入问题库中的问题,并获得被测试对象的对该问题的答案,通过数据清洗得到问答的数据,与标准问答库中的数据进行对比,得到被测试对象的测试结果并发送给相关测试人员,对于测试人员来说,问题输入、答案获取及答案对比,都是自动化产生的过程,测试人员无需参与,从而测试自动化、且利用了现有QT框架,整个测试系统易于上手,成本较低,且可扩展性强。附图说明
[0035] 下面将以明确易懂的方式,结合附图说明优选实施方式,对异步系统的实现方法、计算机设备和存储介质的上述特性、技术特征、优点及其实现方式予以进一步说明。
[0036] 图1是本发明实施例中一种自动化测试方法的流程图
[0037] 图2是本发明实施例中一种自动化测试对智能问答系统进行测试的示例图;
[0038] 图3是本发明实施例一种自动化测试中可视化测试结果的示例框图
[0039] 图4为本发明实施例一种自动化测试中测试结果的可视化统计示例图;
[0040] 图5为本发明实施例一种自动化测试装置的结构框图;
[0041] 图6是本发明实施例一种计算机设备的结构示意图。

具体实施方式

[0042] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0043] 为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0044] 如图1所示,本发明实施例提供了一种自动化测试方法,所述方法包括:S100.定位输入框,并通过输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;
[0045] 如图2所示,本发明实施例可以使用uiautomation库,定位输入框元素,通过pyautogui和pyperclip库模拟鼠标点击来激活输入框;
[0046] 通过xlwings库获取的问题库里的标准问题,再通过pyautogui和pyperclip库将问题复制、输入到所述输入框内。从而将问题库中的问题复制、输入到输入框内,模拟键盘回车动作,以此来完成智能问答的基本操作。
[0047] 优选地,将excel模板中问题库里问答的数据具有原始顺序、升序、降序和乱序四种顺序,多种顺序的问答数据,确保了智能回答的准确性。
[0048] S200.对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表进行存储。
[0049] 对问题进行分词,然后根据分词匹配标准问题,然后回复标准问题对应的答案;如图2所示,经过上一步,已产生了智能问答系统的日志内容,通过对日志内容进行正则表达式匹配及清洗,从而得到小回答的内容,举例说明,通过输入“数据如何清洗”来获得与数据如何清洗相关的问答:
[0050] 日志内容:
[0051] Respond:user:user bot:xiaoyun ip:(~zqy_data_cleaning)7数据如何清洗==>数据如何清洗?
`数据需要清洗的会在预览表中标红,若是数据格式的问题则点击感叹号进行查询并根据要求清洗,若是其他问题则根据具体情况选择清洗规则进行清洗。通过:
[0052] "question=re.compile(r'\d+(.*)==>')",获取输入的问题“数据如何清洗”[0053] "standardProblem=re.compile(r'==>(.*?)
')",获取“数据如何清洗”联想的标准问题“数据如何清洗?”
[0054] "standardAnswer=re.compile(r'
(.*)When')",获取标准问题“数据如何清洗?”对应的标准答案“数据需要清洗的会在预览表中标红,若是数据格式的问题则点击感叹号进行查询并根据要求清洗,若是其他问题则根据具体情况选择清洗规则进行清洗。”[0055] S300.将所述问答数据与模板中的标准答案进行对比,并将对比结果生成报表。
[0056] 例如,将列表中的问答数据,写入模板excel里,通过excel自带的函数如if函数,与模板里标准答案进行比对,把对比结果生成报表,以原始顺序为例,如图3所示。左侧区域为标准问题和标准答案,右侧是日志清洗输入的问题和答案。通过比对得出智能问答系统对于问题的回答的准备率,如最左侧为算出的准确率百分比。
[0057] 最后,获取原始顺序、升序、降序和乱序的准确率后,生成如图4所示的测试结果报表。
[0058] S400.读取报表内容,生成邮件并发送给相关测试人员。
[0059] 使用xlwings从excel里读取报表里表格内容,然后使用smtplib,email把报表内容写入邮件正文;把excel报表作为附件附在邮件上,发送邮件等通知给相关测试人员。
[0060] 经过以上四个步骤,达到从输入到结果通知的全流程自动化测试。
[0061] 本发明实施例基于QT框架开发的自动化测试方法,通过全python语言实现的一个测试方案;具有开源软件的经济、适用和可扩展性的优点,以及较少的学习成本。以智能问答系统为例,基于QT框架进行开发,标准问答库里记录着智能问答系统的标准问题和答案,通过QT框架的输入框自动输入测试的问题,获取回答,然后比对标准问答库中的标准问题和答案;
[0062] 在另外的测试场景里,对于需要输入的输入框问题测试,可以设计另外的表单,进行测试,然后把测试数据的预期结果和实际结果,进行比对。
[0063] 另外,本测试工具还可以结合现有的CI(持续集成)、CD(持续部署)等系统,实现敏捷开发、DevOps与自动化测试的融合。
[0064] 如图5所示,本发明本发明实施例还提供了一种自动化测试装置,所述装置包括:
[0065] 日志获取模块100,用于定位输入框,并通过输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;
[0066] 本发明实施例的日志获取模块100可以使用
[0067] 使用uiautomation库,定位输入框元素,通过pyautogui和pyperclip库模拟鼠标点击来激活输入框;
[0068] 通过xlwings库获取的问题库里的标准问题,再通过pyautogui和pyperclip库将问题复制、输入到所述输入框内,从而,将问题库中的问题复制、输入到输入框内,模拟键盘回车动作,以此来完成智能问答的基本操作。
[0069] 优选地,将excel模板中问题库里问答的数据具有原始顺序、升序、降序和乱序四种顺序,多种顺序的问答数据,确保了智能回答的准确性。
[0070] 日志分析模块101,用于对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;
[0071] 日志分析模块101对问题进行分词,然后根据分词匹配标准问题,然后回复标准问题对应的答案;如图2所示,经过上一步,已产生了智能问答系统的日志内容,通过对日志内容进行正则表达式匹配及清洗,从而得到日志内容,举例说明,通过输入“数据如何清洗”来获得与数据如何清洗相关的问答:
[0072] 日志内容:
[0073] Respond:user:user bot:xiaoyun ip:(~zqy_data_cleaning)7数据如何清洗==>数据如何清洗?
`数据需要清洗的会在预览表中标红,若是数据格式的问题则点击感叹号进行查询并根据要求清洗,若是其他问题则根据具体情况选择清洗规则进行清洗。通过:
[0074] "question=re.compile(r'\d+(.*)==>')",获取输入的问题“数据如何清洗”[0075] "standardProblem=re.compile(r'==>(.*?)
')",获取“数据如何清洗”联想的标准问题“数据如何清洗?”
[0076] "standardAnswer=re.compile(r'
(.*)When')",获取标准问题“数据如何清洗?”对应的标准答案“数据需要清洗的会在预览表中标红,若是数据格式的问题则点击感叹号进行查询并根据要求清洗,若是其他问题则根据具体情况选择清洗规则进行清洗。”[0077] 答案匹配模块102,用于将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;
[0078] 例如,将列表中的问答数据,写入模板excel里,通过excel自带的函数如if函数,与模板里标准答案进行比对,把对比结果生成报表,以原始顺序为例,如图3所示。左侧区域为标准问题和标准答案,右侧是日志清洗输入的问题和答案。通过比对得出智能问答系统对于问题的回答的准备率,如最左侧为算出的准确率百分比。
[0079] 测试反馈模块103,读取报表内容,生成邮件并发送给相关测试人员。
[0080] 最后,获取原始顺序、升序、降序和乱序的准确率后,生成如图4所示的报表。
[0081] 图6为本发明实施例提供的计算机设备的实体结构示意图,所述计算机设备架设于第三方设备中,例如移动终端、便携式计算机、IPAD等,如图6所示,该服务器可以包括:一个或多个处理器(processor)610、通信接口(Communications Interface)620、一个或多个存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法:定位输入框,并通过所述输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;读取报表内容,生成邮件并发送给相关测试人员。
[0082] 通信总线640是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器610通过通信总线640从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器630可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序程序编程接口(Application Programming Interface,API)和应用程序。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。通信接口620将该计算机设备与其它网络设备、客户端、移动设备、网络进行连接。例如,通信接口620可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(WiFi),蓝牙(BT),近距离无线通信技术(NFC),全球卫星定位系统(GPS)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线(USB),高清晰度多媒体接口(HDMI),异步传输标准接口(RS-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。计算机设备可以通过通信接口620连接网络,计算机设备和其它网络设备通信所用的协议可以被应用程序、应用程序程序编程接口(API)、中间件、内核和通信接口620至少一个支持。
[0083] 进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:定位输入框,并通过所述输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;读取报表内容,生成邮件并发送给相关测试人员。
[0084] 进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:定位输入框,并通过所述输入框接收输入的问题,接收对所述问题的答案,获得问答的日志内容;对所述日志内容进行正则表达式匹配,并进行清洗,得到问答数据,通过列表将所述问答数据进行存储;将所述问答数据与问答库中的标准答案进行对比,并将对比结果生成报表;读取报表内容,生成邮件并发送给相关测试人员。
[0085] 本领域普通技术人员可以理解:此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0086] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0087] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0088] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制,上述实施例均可根据需要自由组合;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈