CN118170678A - 微信小程序自动测试方法、装置、计算机设备及存储介质 - Google Patents
微信小程序自动测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN118170678A CN118170678A CN202410386854.1A CN202410386854A CN118170678A CN 118170678 A CN118170678 A CN 118170678A CN 202410386854 A CN202410386854 A CN 202410386854A CN 118170678 A CN118170678 A CN 118170678A
- Authority
- CN
- China
- Prior art keywords
- test
- target
- applet
- result
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 17
- 238000012360 testing method Methods 0.000 claims abstract description 441
- 238000013515 script Methods 0.000 claims abstract description 91
- 238000000034 method Methods 0.000 claims abstract description 82
- 238000012545 processing Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 43
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了微信小程序自动测试方法、装置、计算机设备及存储介质,方法包括获取与小程序测试指令对应的目标批处理文件,并对其进行解析获取目标自定义运行文件;获取目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果;若确定其为匹配成功结果,则获取目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本;在当前运行环境中基于目标小程序测试脚本对目标微信小程序进行自动测试,得到自动测试结果;若其为测试失败结果,则生成的通知信息发送至用户终端。本发明实施例能基于批处理文件定期对多个微信小程序进行稳定的自动化测试,且快速发现导致测试中断的微信小程序,并及时通知开发者修改该微信小程序。
Description
技术领域
本发明涉及自动化测试技术领域,尤其涉及微信小程序自动测试方法、装置、计算机设备及存储介质。
背景技术
智能终端(如智能手机)中越来越多的应用程序中出现内嵌小程序,如微信小程序。不同的小程序开发者在微信小程序上线前需要对小程序进行测试,完成测试且测试合格后才发布至微信小程序平台。
目前,对微信小程序进行测试主要采用小程序测试开源工具。但是,目前的小程序测试开源工具依序驱动智能终端中的多个微信小程序以运行测试用例进行测试时,一般是针对多个微信小程序均完成了完整的测试过程后,生成相应的测试报告并发送至测试人员所使用的接收终端进行查看。通过上述小程序测试方式,在测试过程中若针对某一个微信小程序进行测试发生异常而中断后,无法即时的生成测试中断通知以及时通知测试人员进行测试中断原因排查,从而无法及时的排除测试中断以确保测试过程的连续性。
发明内容
本发明实施例提供了微信小程序自动测试方法、装置、计算机设备及存储介质,旨在解决现有技术中采用小程序测试开源工具依序驱动智能终端中的多个微信小程序以运行测试用例进行测试时,在测试过程中若针对其中一个微信小程序进行测试发生异常而中断后,无法即时的生成测试中断通知以及时通知测试人员进行测试中断原因排查,从而难以确保测试过程连续性的问题。
第一方面,本发明实施例提供了一种微信小程序自动测试方法,应用于搭载有Windows***的服务器,其包括:
响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件;
对所述目标批处理文件进行解析以获取到目标自定义运行文件;
获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果;
若确定所述目标匹配结果为匹配成功结果,则获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本;
基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果;
若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端。
第二方面,本发明实施例还提供了一种微信小程序自动测试装置,配置于搭载有Windows***的服务器,其包括:
批处理文件获取单元,用于响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件;
自定义运行文件获取单元,用于对所述目标批处理文件进行解析以获取到目标自定义运行文件;
运行环境匹配单元,用于获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果;
目标脚本获取单元,用于若确定所述目标匹配结果为匹配成功结果,则获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本;
自动测试单元,用于基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果;
第一测试结果通知单元,用于若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端。
第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述第一方面所述的方法。
本发明实施例提供了微信小程序自动测试方法、装置、计算机设备及存储介质,方法包括:响应于小程序测试指令,获取与小程序测试指令对应的目标批处理文件;对目标批处理文件进行解析以获取到目标自定义运行文件;获取目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果;若确定目标匹配结果为匹配成功结果,则获取目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本;在当前运行环境中基于目标小程序测试脚本对目标微信小程序进行自动测试,得到自动测试结果;若确定自动测试结果为测试失败结果,则获取与小程序测试指令对应的用户终端,并将基于自动测试结果生成的通知信息发送至用户终端。本发明实施例能基于批处理文件定期对多个待测试的微信小程序进行稳定的自动化测试,且快速发现导致测试中断的微信小程序,并及时通知开发者修改该微信小程序。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的微信小程序自动测试方法的应用场景示意图;
图2为本发明实施例提供的微信小程序自动测试方法的流程示意图;
图3为本发明实施例提供的微信小程序自动测试方法的另一流程示意图;
图4为本发明实施例提供的微信小程序自动测试装置的示意性框图;
图5为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请同时参考图1和图2,其中图1为本发明实施例微信小程序自动测试方法的场景示意图,图2是本发明实施例提供的微信小程序自动测试方法的流程示意图。如图1所示,本发明实施例提供的微信小程序自动测试方法应用于服务器10中,所述服务器10与用户终端20通讯连接。
如图2所示,该方法包括以下步骤S110-S160。
S110、响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件。
在本实施例中,是以服务器为执行主体描述技术方案。在服务器上搭载有Windows***,在服务器中可以在启动非手机版本微信应用程序(如可在电脑主机上启动的微信应用程序)后,在微信应用程序中启动目标微信小程序进行测试。因上述测试过程是在非手机版本微信应用程序中进行,故无需在手机上打开目标微信小程序进行测试。而且,在对微信小程序进行测试时,首先获取到的集成了多个脚本的目标批处理文件,即目标bat文件。在获取到了目标批处理文件之后,才可以进行下一步的测试过程。
在一实施例中,在步骤S110之前还包括:
若满足预设的触发器任务计划条件,则对应产生小程序测试指令。
在本实施例中,在服务器中只要当前***参数满足了触发器任务计划条件,如当前***时间作为当前***参数,触发器任务计划条件对应一个定时执行条件,若当前***时间到达了定时执行条件中所设置的定时时间,则在服务器中自动产生小程序测试指令。当然,具体实施时,并不局限于基于触发器任务计划条件来自动产生小程序测试指令,还可以由定时脚本、测试人员操作服务器上的小程序测试***以手动触发产生小程序测试指令等方式来产生小程序测试指令。但无论以哪一种方式来产生小程序测试指令,均可在小程序测试指令产生后,即时的开启测试过程。
在一实施例中,在所述若满足预设的触发器任务计划条件,则对应产生小程序测试指令的步骤或者在步骤S130之前,所述方法还包括:
构建Python初始环境;
在所述Python初始环境中至少构建执行测试用例、第一预设跨平台测试框架和发送邮件库,以得到所述当前运行环境。
在本实施例中,在服务器中对微信小程序进行测试时,需要预先构建测试环境。例如,在服务器本地中安装3.9.13版本的Python以构建Python初始环境。
在完成了Python初始环境的构建后,还可以构建执行测试用例、第一预设跨平台测试框架和发送邮件库,以得到所述当前运行环境。例如,在Python初始环境中安装Airtest这一执行测试用例、安装PocoUI这一第一预设跨平台测试框架、且安装Yagmail这一发送邮件库,从而得到了所述当前运行环境。可见,基于上述方式可以快速的构建适用于测试的当前运行环境。
在一实施例中,在步骤S110之前还包括:
继承与所述执行测试用例对应的第一预设测试类;
获取报告导出地址、脚本描述、邮件发送者和待测试小程序版本分别对应的自定义参数,在所述第一预设测试类中新增所述报告导出地址、所述脚本描述、所述邮件发送者和所述待测试小程序版本,以在所述第一预设测试类中对应生成自定义参数集。
在本实施例中,在完成了当前运行环境的构建后,可以编辑自定义运行文件中的自定义参数。具体是先继承与所述执行测试用例Airtest对应的第一预设测试类AirtestCase,其中Airtest通过继承unittest可实现AirtestCase。之后在第一预设测试类AirtestCase中新增所述报告导出地址(如ap.add_argument(“--export_dir”,help=“export path”))、所述脚本描述(如ap.add_argument(“--desc”,help=“airzhdescription”))、所述邮件发送者(如ap.add_argument(“--receivers”,help=“emailreceivers”))和所述待测试小程序版本(如ap.add_argument(“—weapp_version”,help=“weapp version”))后,完成了在第一预设测试类对应生成自定义参数集,并更新至自定义运行文件中。可见,基于上述方式可以快速的完成对自定义运行文件中自定义参数集的编辑。
在一实施例中,所述获取报告导出地址、脚本描述、邮件发送者和待测试小程序版本分别对应的自定义参数,在所述第一预设测试类中新增所述报告导出地址、所述脚本描述、所述邮件发送者和所述待测试小程序版本,以在所述第一预设测试类中对应生成所述自定义参数集的步骤之后,还包括:
将所述自定义参数集中的所述待测试小程序版本基于透传方式传输至所述目标批处理文件的所述目标自定义运行文件中。
在本实施例中,在完成了自定义参数集的获取后,需及时的更新至自定义运行文件中。此时,可以采用透传方式将自定义参数集传输至所述目标批处理文件的所述目标自定义运行文件中。其中,透传的传输方式,是指将数据原封不动(即不对数据进行任何处理和解析的方式)由源地址传输至目标地址。通过透传的传输方式,一是保证了数据的完整性和准确性;二是使得数据传输过程对上层应用程序透明,不需要进行任何特殊的配置;三是可以提高数据传输的效率和稳定性,减少了数据传输过程中的丢包和延迟等问题。
S120、对所述目标批处理文件进行解析以获取到目标自定义运行文件。
在本实施例中,在目标批处理文件中除了包括多个脚本,还能包括其他文件如自定义运行文件(也即Runner文件)。下面以一个具体实施例来说明目标批处理文件中包括的数据,例如Python调用Runner文件,以调用测试XX1脚本进行小程序测试,测试失败时发送邮件给XXX1用户,且脚本描述为XXX2(XXX2都是定义的入参)。可见,目标批处理文件中以数据集成的方式包括了多种测试所需的数据。
S130、获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果。
在本实施例中,在服务器中基于目标自定义运行文件对目标微信小程序进行测试前,还需获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境是否一致所对应的目标匹配结果。若所述目标自定义运行文件中的目标运行环境信息与当前运行环境相同时,则表示匹配成功结果;若所述目标自定义运行文件中的目标运行环境信息与当前运行环境不相同时,则表示匹配失败结果。可见,在具体测试过程开始前,获取当前运行环境是否符合目标运行环境的判断结果,能确定当前测试过程是否继续或终止。
S140、若确定所述目标匹配结果为匹配成功结果,则获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本。
在本实施例中,若确定所述目标匹配结果为匹配成功结果,则对应于所述目标自定义运行文件中的目标运行环境信息与当前运行环境相同的情况,此时表示测试过程可以进行,并获取到获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本。
其中,所述目标小程序测试脚本可以是采用预先录制脚本的方式来得到,或是基于测试脚本示例智能引导式的生成(例如按测试先后顺序依序输入每一个测试步骤的文字描述,由服务器基于每一个测试步骤的文字描述和预先训练的人工智能模型智能生成每一个测试步骤的测试脚本语句)。例如以目标微信小程序为一款在线商城小程序为例,可以录制具有如下操作的目标小程序测试脚本:
1)打开微信应用程序;
2)下拉打开微信的小程序列表;
3)识别目标微信小程序;
4)进去目标微信小程序首页,浏览下拉店铺;
5)识别店铺名称,找到指定店铺;
6)进入店铺详情,选择两件商品加入购物车;
7)点击去结算按钮,去到订单确认页;
8)订单确认页点击立即支付,检查微信支付顺利拉起收银台;
9)流程结束,关闭微信,重置状态,以便下次自动化测试。
上述目标小程序测试脚本1)-9)的执行顺序是串行执行,只要有一个脚本未成功执行则视为测试失败。可见,以上述列举方式得到的目标小程序测试脚本,是确保测试过程自动进行的重要数据,能自动按顺序执行以测试目标微信小程序。
S150、基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果。
在本实施例中,在服务器获取到了所述目标小程序测试脚本后,在服务器的所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果。可见,这一过程无需人工参与,服务器基于目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,基于服务器的高稳定性以确保测试过程的稳定进行。
在一实施例中,在步骤S150之前还包括:
获取与所述目标小程序测试脚本对应版本的目标版本微信程序,并在所述当前运行环境中启动所述目标版本微信程序;
步骤S150包括:
基于所述目标小程序测试脚本在所述目标版本微信程序中启动所述目标微信小程序进行自动测试,得到所述自动测试结果。
在本实施例中,在具体对目标微信小程序进行自动测试时,还需要在服务器中先获取与所述目标小程序测试脚本对应版本的目标版本微信程序,并在所述当前运行环境中启动所述目标版本微信程序。即在服务器中可以预先存储多个版本的微信程序,在获取到运行目标小程序测试脚本对应的微信应用程序版本后,以作为目标版本微信程序。之后,在服务器的当前运行环境中启动所述目标版本微信程序,并执行所述目标小程序测试脚本,从而实现在所述目标版本微信程序中启动所述目标微信小程序进行自动测试得到所述自动测试结果。可见,上述过程确保了小程序测试是在目标版本微信程序进行,得到的测试结果更加准确。
其中,得到的自动测试结果除了包括用于显示测试是否成功的测试结果以外,还可以包括测试过程总耗时、目标小程序测试脚本的制作者等信息。更具体的,还可以针对目标小程序测试脚本中每一测试步骤对应的小程序测试子脚本对应获取显示步骤测试是否成功的步骤测试结果,以及步骤测试过程耗时等信息。
S160、若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端。
在本实施例中,若在服务器中确定所述自动测试结果为测试失败结果,则表示针对目标微信小程序的测试出现了未按预期正常执行的脚本,可能是因为目标微信小程序存在漏洞需要及时处理。此时,为了及时的通知目标微信小程序对应的开发方进行漏洞修复,需要获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端,从而实现快速发现导致测试中断的微信小程序,并及时通知开发者修改该微信小程序。
当然,若在服务器中确定所述自动测试结果为测试成功结果,则表示目标微信小程序通过了自动测试,此时可以将基于所述自动测试结果生成的测试成功通知信息发送至所述用户终端,以及时通知目标微信小程序测试通过。
在一实施例中,如图3所示,在步骤S160之后还包括:
S170、获取与所述自动测试结果对应的测试报告和测试视频并进行压缩,得到测试过程压缩数据;
S180、将所述测试过程压缩数据发送至所述用户终端。
在本实施例中,在服务器中获取到了针对目标微信小程序进行自动化测试得到的自动测试结果后,在自动测试结果为测试失败结果的情况下,可以基于执行测试用例Airtest自动将基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试的过程中录制的测试视频,以及基于自动测试结果填充至预设测试报告模板得到的测试报告一同进行压缩(具体实施时,还可以将测试日志与测试视频、测试报告一同进行压缩),得到测试过程压缩数据。
之后,将所述测试过程压缩数据发送至所述用户终端,即可及时通知开发者修改。而且,只有在测试失败的情况下,才会获取到自动测试的过程中录制的测试视频,并与获取到的测试报告共同压缩并发送至开发者的用户终端。在测试成功的情况下,则只用基于自动测试结果填充至预设测试报告模板得到测试报告(在此情况下,无需增加测试视频,以有效降低发送至开发者的用户终端的数据量,有效节约网络流量),并发送至开发者的用户终端。
可见,实施该方法的实施例能基于批处理文件定期对多个待测试的微信小程序进行稳定的自动化测试,且快速发现导致测试中断的微信小程序,并及时通知开发者修改该微信小程序。
图4是本发明实施例提供的一种微信小程序自动测试装置的示意性框图。如图4所示,对应于以上微信小程序自动测试方法,本发明还提供一种微信小程序自动测试装置100。该微信小程序自动测试装置100包括用于执行上述微信小程序自动测试方法的单元。请参阅图4,该微信小程序自动测试装置100包括:批处理文件获取单元110、自定义运行文件获取单元120、运行环境匹配单元130、目标脚本获取单元140、自动测试单元150和第一测试结果通知单元160。
批处理文件获取单元110,用于响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件。
在本实施例中,是以服务器为执行主体描述技术方案。在服务器上搭载有Windows***,在服务器中可以在启动非手机版本微信应用程序(如可在电脑主机上启动的微信应用程序)后,在微信应用程序中启动目标微信小程序进行测试。因上述测试过程是在非手机版本微信应用程序中进行,故无需在手机上打开目标微信小程序进行测试。而且,在对微信小程序进行测试时,首先获取到的集成了多个脚本的目标批处理文件,即目标bat文件。在获取到了目标批处理文件之后,才可以进行下一步的测试过程。
在一实施例中,微信小程序自动测试装置100还包括:
测试指令产生控制单元,用于若满足预设的触发器任务计划条件,则对应产生小程序测试指令。
在本实施例中,在服务器中只要当前***参数满足了触发器任务计划条件,如当前***时间作为当前***参数,触发器任务计划条件对应一个定时执行条件,若当前***时间到达了定时执行条件中所设置的定时时间,则在服务器中自动产生小程序测试指令。当然,具体实施时,并不局限于基于触发器任务计划条件来自动产生小程序测试指令,还可以由定时脚本、测试人员操作服务器上的小程序测试***以手动触发产生小程序测试指令等方式来产生小程序测试指令。但无论以哪一种方式来产生小程序测试指令,均可在小程序测试指令产生后,即时的开启测试过程。
在一实施例中,微信小程序自动测试装置100还包括:
Python环境构建单元,用于构建Python初始环境;
当前运行环境构建单元,用于在所述Python初始环境中至少构建执行测试用例、第一预设跨平台测试框架和发送邮件库,以得到所述当前运行环境。
在本实施例中,在服务器中对微信小程序进行测试时,需要预先构建测试环境。例如,在服务器本地中安装3.9.13版本的Python以构建Python初始环境。
在完成了Python初始环境的构建后,还可以构建执行测试用例、第一预设跨平台测试框架和发送邮件库,以得到所述当前运行环境。例如,在Python初始环境中安装Airtest这一执行测试用例、安装PocoUI这一第一预设跨平台测试框架、且安装Yagmail这一发送邮件库,从而得到了所述当前运行环境。可见,基于上述方式可以快速的构建适用于测试的当前运行环境。
在一实施例中,微信小程序自动测试装置100还包括:
第一预设测试类继承单元,用于继承与所述执行测试用例对应的第一预设测试类;
自定义参数集生成单元,用于获取报告导出地址、脚本描述、邮件发送者和待测试小程序版本分别对应的自定义参数,在所述第一预设测试类中新增所述报告导出地址、所述脚本描述、所述邮件发送者和所述待测试小程序版本,以在所述第一预设测试类中对应生成自定义参数集。
在本实施例中,在完成了当前运行环境的构建后,可以编辑自定义运行文件中的自定义参数。具体是先继承与所述执行测试用例Airtest对应的第一预设测试类AirtestCase,其中Airtest通过继承unittest可实现AirtestCase。之后在第一预设测试类AirtestCase中新增所述报告导出地址(如ap.add_argument(“--export_dir”,help=“export path”))、所述脚本描述(如ap.add_argument(“--desc”,help=“airzhdescription”))、所述邮件发送者(如ap.add_argument(“--receivers”,help=“emailreceivers”))和所述待测试小程序版本(如ap.add_argument(“—weapp_version”,help=“weapp version”))后,完成了在第一预设测试类对应生成自定义参数集,并更新至自定义运行文件中。可见,基于上述方式可以快速的完成对自定义运行文件中自定义参数集的编辑。
在一实施例中,微信小程序自动测试装置100,还包括:
自定义参数传输单元,用于将所述自定义参数集中的所述待测试小程序版本基于透传方式传输至所述目标批处理文件的所述目标自定义运行文件中。
在本实施例中,在完成了自定义参数集的获取后,需及时的更新至自定义运行文件中。此时,可以采用透传方式将自定义参数集传输至所述目标批处理文件的所述目标自定义运行文件中。其中,透传的传输方式,是指将数据原封不动(即不对数据进行任何处理和解析的方式)由源地址传输至目标地址。通过透传的传输方式,一是保证了数据的完整性和准确性;二是使得数据传输过程对上层应用程序透明,不需要进行任何特殊的配置;三是可以提高数据传输的效率和稳定性,减少了数据传输过程中的丢包和延迟等问题。
自定义运行文件获取单元120,用于对所述目标批处理文件进行解析以获取到目标自定义运行文件。
在本实施例中,在目标批处理文件中除了包括多个脚本,还能包括其他文件如自定义运行文件(也即Runner文件)。下面以一个具体实施例来说明目标批处理文件中包括的数据,例如Python调用Runner文件,以调用测试XX1脚本进行小程序测试,测试失败时发送邮件给XXX1用户,且脚本描述为XXX2(XXX2都是定义的入参)。可见,目标批处理文件中以数据集成的方式包括了多种测试所需的数据。
运行环境匹配单元130,用于获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果。
在本实施例中,在服务器中基于目标自定义运行文件对目标微信小程序进行测试前,还需获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境是否一致所对应的目标匹配结果。若所述目标自定义运行文件中的目标运行环境信息与当前运行环境相同时,则表示匹配成功结果;若所述目标自定义运行文件中的目标运行环境信息与当前运行环境不相同时,则表示匹配失败结果。可见,在具体测试过程开始前,获取当前运行环境是否符合目标运行环境的判断结果,能确定当前测试过程是否继续或终止。
目标脚本获取单元140,用于若确定所述目标匹配结果为匹配成功结果,则获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本。
在本实施例中,若确定所述目标匹配结果为匹配成功结果,则对应于所述目标自定义运行文件中的目标运行环境信息与当前运行环境相同的情况,此时表示测试过程可以进行,并获取到获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本。
其中,所述目标小程序测试脚本可以是采用预先录制脚本的方式来得到,或是基于测试脚本示例智能引导式的生成(例如按测试先后顺序依序输入每一个测试步骤的文字描述,由服务器基于每一个测试步骤的文字描述和预先训练的人工智能模型智能生成每一个测试步骤的测试脚本语句)。例如以目标微信小程序为一款在线商城小程序为例,可以录制具有如下操作的目标小程序测试脚本:
11)打开微信应用程序;
12)下拉打开微信的小程序列表;
13)识别目标微信小程序;
14)进去目标微信小程序首页,浏览下拉店铺;
15)识别店铺名称,找到指定店铺;
16)进入店铺详情,选择两件商品加入购物车;
17)点击去结算按钮,去到订单确认页;
18)订单确认页点击立即支付,检查微信支付顺利拉起收银台;
19)流程结束,关闭微信,重置状态,以便下次自动化测试。
上述目标小程序测试脚本11)-19)的执行顺序是串行执行,只要有一个脚本未成功执行则视为测试失败。可见,以上述列举方式得到的目标小程序测试脚本,是确保测试过程自动进行的重要数据,能自动按顺序执行以测试目标微信小程序。
自动测试单元150,用于基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果。
在本实施例中,在服务器获取到了所述目标小程序测试脚本后,在服务器的所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果。可见,这一过程无需人工参与,服务器基于目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,基于服务器的高稳定性以确保测试过程的稳定进行。
在一实施例中,微信小程序自动测试装置100还包括:
目标版本微信程序获取单元,用于获取与所述目标小程序测试脚本对应版本的目标版本微信程序,并在所述当前运行环境中启动所述目标版本微信程序;
自动测试单元150用于:
基于所述目标小程序测试脚本在所述目标版本微信程序中启动所述目标微信小程序进行自动测试,得到所述自动测试结果。
在本实施例中,在具体对目标微信小程序进行自动测试时,还需要在服务器中先获取与所述目标小程序测试脚本对应版本的目标版本微信程序,并在所述当前运行环境中启动所述目标版本微信程序。即在服务器中可以预先存储多个版本的微信程序,在获取到运行目标小程序测试脚本对应的微信应用程序版本后,以作为目标版本微信程序。之后,在服务器的当前运行环境中启动所述目标版本微信程序,并执行所述目标小程序测试脚本,从而实现在所述目标版本微信程序中启动所述目标微信小程序进行自动测试得到所述自动测试结果。可见,上述过程确保了小程序测试是在目标版本微信程序进行,得到的测试结果更加准确。
其中,得到的自动测试结果除了包括用于显示测试是否成功的测试结果以外,还可以包括测试过程总耗时、目标小程序测试脚本的制作者等信息。更具体的,还可以针对目标小程序测试脚本中每一测试步骤对应的小程序测试子脚本对应获取显示步骤测试是否成功的步骤测试结果,以及步骤测试过程耗时等信息。
第一测试结果通知单元160,用于若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端。
在本实施例中,若在服务器中确定所述自动测试结果为测试失败结果,则表示针对目标微信小程序的测试出现了未按预期正常执行的脚本,可能是因为目标微信小程序存在漏洞需要及时处理。此时,为了及时的通知目标微信小程序对应的开发方进行漏洞修复,需要获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端,从而实现快速发现导致测试中断的微信小程序,并及时通知开发者修改该微信小程序。
当然,若在服务器中确定所述自动测试结果为测试成功结果,则表示目标微信小程序通过了自动测试,此时可以通过第二测试结果通知单元将基于所述自动测试结果生成的测试成功通知信息发送至所述用户终端,以及时通知目标微信小程序测试通过。
在一实施例中,微信小程序自动测试装置100还包括:
测试过程压缩数据获取单元,用于获取与所述自动测试结果对应的测试报告和测试视频并进行压缩,得到测试过程压缩数据;
测试过程压缩数据发送单元,用于将所述测试过程压缩数据发送至所述用户终端。
在本实施例中,在服务器中获取到了针对目标微信小程序进行自动化测试得到的自动测试结果后,在自动测试结果为测试失败结果的情况下,可以基于执行测试用例Airtest自动将基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试的过程中录制的测试视频,以及基于自动测试结果填充至预设测试报告模板得到的测试报告一同进行压缩(具体实施时,还可以将测试日志与测试视频、测试报告一同进行压缩),得到测试过程压缩数据。
之后,将所述测试过程压缩数据发送至所述用户终端,即可及时通知开发者修改。而且,只有在测试失败的情况下,才会获取到自动测试的过程中录制的测试视频,并与获取到的测试报告共同压缩并发送至开发者的用户终端。在测试成功的情况下,则只用基于自动测试结果填充至预设测试报告模板得到测试报告(在此情况下,无需增加测试视频,以有效降低发送至开发者的用户终端的数据量,有效节约网络流量),并发送至开发者的用户终端。
可见,实施该装置的实施例能基于批处理文件定期对多个待测试的微信小程序进行稳定的自动化测试,且快速发现导致测试中断的微信小程序,并及时通知开发者修改该微信小程序。
上述微信小程序自动测试装置可以实现为一种计算机程序的形式,该计算机程序可以在如图5所示的计算机设备上运行。
请参阅图5,图5是本发明实施例提供的一种计算机设备的示意性框图。该计算机设备集成了本发明实施例所提供的任一种微信小程序自动测试装置。
参阅图5,该计算机设备包括通过***总线401连接的处理器402、存储器和网络接口405,其中,存储器可以包括存储介质403和内存储器404。
该存储介质403可存储操作***4031和计算机程序4032。该计算机程序4032包括程序指令,该程序指令被执行时,可使得处理器402执行一种微信小程序自动测试方法。
该处理器402用于提供计算和控制能力,以支撑整个计算机设备的运行。
该内存储器404为存储介质403中的计算机程序4032的运行提供环境,该计算机程序4032被处理器402执行时,可使得处理器402执行上述的微信小程序自动测试方法。
该网络接口405用于与其它设备进行网络通信。本领域技术人员可以理解,图5中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器402用于运行存储在存储器中的计算机程序4032,以实现如下步骤:
响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件;
对所述目标批处理文件进行解析以获取到目标自定义运行文件;
获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果;
若确定所述目标匹配结果为匹配成功结果,则获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本;
基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果;
若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端。
应当理解,在本发明实施例中,处理器402可以是中央处理单元(CentralProcessing Unit,CPU),该处理器402还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时使处理器执行如下步骤:
响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件;
对所述目标批处理文件进行解析以获取到目标自定义运行文件;
获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果;
若确定所述目标匹配结果为匹配成功结果,则获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本;
基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果;
若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端。
存储介质可以是U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种微信小程序自动测试方法,应用于搭载有Windows***的服务器,其特征在于,包括:
响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件;
对所述目标批处理文件进行解析以获取到目标自定义运行文件;
获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果;
若确定所述目标匹配结果为匹配成功结果,则获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本;
基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果;
若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端。
2.根据权利要求1所述的方法,其特征在于,在所述响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件的步骤之前,所述方法还包括:
若满足预设的触发器任务计划条件,则对应产生小程序测试指令。
3.根据权利要求2所述的方法,其特征在于,在所述若满足预设的触发器任务计划条件,则对应产生小程序测试指令的步骤,或在所述获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果的步骤之前,所述方法还包括:
构建Python初始环境;
在所述Python初始环境中至少构建执行测试用例、第一预设跨平台测试框架和发送邮件库,以得到所述当前运行环境。
4.根据权利要求3所述的方法,其特征在于,在所述响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件的步骤之前,所述方法还包括:
继承与所述执行测试用例对应的第一预设测试类;
获取报告导出地址、脚本描述、邮件发送者和待测试小程序版本分别对应的自定义参数,在所述第一预设测试类中新增所述报告导出地址、所述脚本描述、所述邮件发送者和所述待测试小程序版本,以在所述第一预设测试类中对应生成自定义参数集。
5.根据权利要求4所述的方法,其特征在于,在所述获取报告导出地址、脚本描述、邮件发送者和待测试小程序版本分别对应的自定义参数,在所述第一预设测试类中新增所述报告导出地址、所述脚本描述、所述邮件发送者和所述待测试小程序版本,以在所述第一预设测试类中对应生成所述自定义参数集的步骤之后,所述方法还包括:
将所述自定义参数集中的所述待测试小程序版本基于透传方式传输至所述目标批处理文件的所述目标自定义运行文件中。
6.根据权利要求1所述的方法,其特征在于,在所述基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果的步骤之前,所述方法还包括:
获取与所述目标小程序测试脚本对应版本的目标版本微信程序,并在所述当前运行环境中启动所述目标版本微信程序;
所述基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果,包括:
基于所述目标小程序测试脚本在所述目标版本微信程序中启动所述目标微信小程序进行自动测试,得到所述自动测试结果。
7.根据权利要求1所述的方法,其特征在于,在所述若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端的步骤之后,所述方法还包括:
获取与所述自动测试结果对应的测试报告和测试视频并进行压缩,得到测试过程压缩数据;
将所述测试过程压缩数据发送至所述用户终端。
8.一种微信小程序自动测试装置,配置于搭载有Windows***的服务器,其特征在于,包括:
批处理文件获取单元,用于响应于小程序测试指令,获取与所述小程序测试指令对应的目标批处理文件;
自定义运行文件获取单元,用于对所述目标批处理文件进行解析以获取到目标自定义运行文件;
运行环境匹配单元,用于获取所述目标自定义运行文件中的目标运行环境信息与当前运行环境的目标匹配结果;
目标脚本获取单元,用于若确定所述目标匹配结果为匹配成功结果,则获取所述目标自定义运行文件中包括的目标微信小程序和目标小程序测试脚本;
自动测试单元,用于基于所述目标小程序测试脚本在所述当前运行环境中对所述目标微信小程序进行自动测试,得到自动测试结果;
第一测试结果通知单元,用于若确定所述自动测试结果为测试失败结果,则获取与所述小程序测试指令对应的用户终端,并将基于所述自动测试结果生成的通知信息发送至所述用户终端。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的微信小程序自动测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-7中任一项所述的微信小程序自动测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410386854.1A CN118170678A (zh) | 2024-04-01 | 2024-04-01 | 微信小程序自动测试方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410386854.1A CN118170678A (zh) | 2024-04-01 | 2024-04-01 | 微信小程序自动测试方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118170678A true CN118170678A (zh) | 2024-06-11 |
Family
ID=91348578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410386854.1A Pending CN118170678A (zh) | 2024-04-01 | 2024-04-01 | 微信小程序自动测试方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118170678A (zh) |
-
2024
- 2024-04-01 CN CN202410386854.1A patent/CN118170678A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459794A (zh) | 通信网络测试方法、装置、计算机设备和存储介质 | |
CN111026645B (zh) | 用户界面自动化测试方法、装置、存储介质及电子设备 | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN111240973B (zh) | 基于仿真的设备测试方法、***及可读存储介质 | |
CN111104315A (zh) | 一种测试脚本生成方法及装置、计算机可读存储介质 | |
CN110765018B (zh) | 接口自动化测试方法及设备 | |
CN105653287A (zh) | 一种程序自动版本发布方法和装置 | |
CN111552633A (zh) | 接口的异常调用测试方法、装置、计算机设备及存储介质 | |
CN109977012B (zh) | ***的联调测试方法、装置、设备及计算机可读存储介质 | |
CN109783345B (zh) | 一种小程序性能测试方法和*** | |
CN109558313B (zh) | 构建异常测试场景的方法及装置 | |
CN112948224A (zh) | 一种数据处理方法、装置、终端及存储介质 | |
CN114647572A (zh) | 用于软件应用组件测试的方法和*** | |
CN112559348B (zh) | 基于jacoco的测试分析方法、***、设备以及介质 | |
CN111026651B (zh) | 测试方法、装置、存储介质及电子设备 | |
CN109388420A (zh) | 应用升级测试方法、装置、计算机设备及存储介质 | |
KR20120102967A (ko) | 애플리케이션 검증 시스템 및 방법 | |
CN110908489B (zh) | 电池管理***的测试方法及测试设备 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN114721740B (zh) | 消息触发方法、装置、设备及存储介质 | |
CN118170678A (zh) | 微信小程序自动测试方法、装置、计算机设备及存储介质 | |
CN108400901B (zh) | 应用的测试方法、终端设备及计算机可读存储介质 | |
CN112596750B (zh) | 应用测试方法、装置、电子设备及计算机可读存储介质 | |
CN110795330A (zh) | 一种Monkey压力测试的方法和装置 | |
CN114385493A (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 |