CN109739754B - 基于微信开发的应用程序自动化测试方法及系统 - Google Patents
基于微信开发的应用程序自动化测试方法及系统 Download PDFInfo
- Publication number
- CN109739754B CN109739754B CN201811589487.6A CN201811589487A CN109739754B CN 109739754 B CN109739754 B CN 109739754B CN 201811589487 A CN201811589487 A CN 201811589487A CN 109739754 B CN109739754 B CN 109739754B
- Authority
- CN
- China
- Prior art keywords
- application program
- test
- automatic
- connection
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种基于微信开发的应用程序自动化测试方法及系统,包括:通过WebSocket协议和应用程序建立连接;发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。本发明实施例通过WebSocket协议和应用程序建立连接,将自动化测试请求发送到应用程序进行测试,从而得到测试报告,减少了测试成本,提升了测试效率,保证了测试质量。
Description
技术领域
本发明实施例涉及计算机软件测试技术领域,尤其涉及一种基于微信开发的应用程序自动化测试方法及系统。
背景技术
微信小程序和微信公众号是一种不需要下载安装就可以用微信打开的应用。其优点是用户体验类似于原生App,但是不需要下载安装。对开发者来说,它的优点是不用针对安卓系统和IOS系统分别开发,也不用发布到苹果Appstore和安卓市场,可以节省开发成本。
随着产品业务形态逐渐从App延升到微信小程序和公众号,现有的自动化测试主要是Native App和Hybird App为主,而微信小程序全部是基于微信官方提供的开源工具进行开发,在微信的基础上进行二次封装后,采用HTML进行页面布局,通过JavaScript进行各种页面交互。目前市面上存在的自动化测试框架都无法适用于微信小程序和公众号的测试,大部分的测试都是通过人工测试,或者未进行测试直接投入使用,导致微信小程序和公众号的缺陷较多,产品质量参差不齐。
基于时间和成本的考虑,手工测试需占用大量时间及人力,且测试效率较低,全手工测试已无法满足微信小程序和公众号快速增长的业务需求。因此,现在亟需一种基于微信开发的应用程序自动化测试方法及系统来解决上述问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于微信开发的应用程序自动化测试方法及系统。
第一方面,本发明实施例提供了一种基于微信开发的应用程序自动化测试方法,包括:
通过WebSocket协议和应用程序建立连接;
发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。
第二方面,本发明实施例提供了一种基于微信开发的应用程序自动化测试系统,包括:
通信连接模块,用于通过WebSocket协议和应用程序建立连接;
测试引擎模块,用于发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的一种基于微信开发的应用程序自动化测试方法及系统,通过通过WebSocket协议和应用程序建立连接,将自动化测试请求发送到应用程序进行测试,从而得到测试报告,减少了测试成本,提升了测试效率,保证了测试质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于微信开发的应用程序自动化测试方法的流程示意图;
图2为本发明实施例提供的自动化测试微信小程序页面的流程图;
图3为本发明实施例提供的基于微信开发的应用程序自动化测试系统的结构示意图;
图4为本发明实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着移动终端的产品业务形态逐渐从App延升到微信小程序和微信公众号等,现有的自动化软件测试方法已不能适用于对微信小程序和微信公众号的测试。微信小程序基于微信自身开发环境与开发语言进行开发,作为微信内的云端应用,因此无需进行安装,通过WebSocket双向通信、本地缓存以及微信底层技术优化实现了接近原生App的体验。微信公众号是基于传统H5开发与运行,但运行环境并非完整的浏览器,而是基于浏览器内核完全重构的一个内置解析器,开发过程中用到H5相关的技术,并配合自定义的开发语言标准。
目前市面上存在的Android自动化测试框架均无法适用于微信小程序和公众号的自动化测试,例如,Robolectric、Monkey、UIAutomator、Instrumentation和Robotium,其中,运用UIAutomator进行自动化测试的前提是可以用UIAutomatorViewer查看到预操作控件的属性信息,然而,微信小程序部分控件的父容器是webview,由于webview属于非标准结构,无法通过Appium UIAutomator进行自动化测试;Instrumentation或Robotium需要有产品源码或者签名,测试工程通常是与产品源码放在相同项目目录下,但是针对微信小程序,是基于微信开元框架上的开发,无法得到微信的源码和签名,因此也无法对微信小程序和公众号进行自动化测试。
由于微信小程序和公众号在开发完成后,需要对其程序缺陷、评估产品质量和性能数据等进行测试,并在测试过程中收集包含加载时间、CPU占用率和内存占用量等数据指标,在小程序交付到真实用户手中使用之前,以模拟用户使用的方式进行测试,执行完毕后自动生成测试报告。目前手工测试需占用大量时间及人力,且测试效率较低,全手工测试无法满足微信小程序和公众号快速增长的业务需求。在本发明实施例中,以微信小程序和微信公众号进行应用程序自动化测试方法的说明,其他基于微信开发的应用程序同样适用于本方法,本发明实施例不对应用程序进行具体限定。
图1为本发明实施例提供的基于微信开发的应用程序自动化测试方法的流程示意图,如图1所示,本发明实施例提供了一种基于微信开发的应用程序自动化测试方法,包括:
步骤101,通过WebSocket协议和应用程序建立连接;
步骤102,发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。
在本发明实施例中,首先,根据步骤101,通过WebSocket协议和应用程序建立连接。自动化测试系统通过WebSocket(即网络管道)与移动终端的微信小程序或微信公众号的页面进行通信,当获取到微信进程编号(Process Identification,简称PID)之后,通过端口号转发到移动终端的微信小程序或微信公众号页面,以使得自动化测试系统获取到微信小程序或微信公众号页面的调试链接(Debug URL),从而实现自动化测试系统和微信小程序或微信公众号页面建立连接。需要说明的是,本发明实施例通过安卓调试桥(AndroidDebug Bridge,简称ADB)获取微信进程编号。
然后,通过步骤102,发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。在本发明实施例中,在自动化测试系统和待测试的微信小程序或微信公众号进行连接之后,通过自动化测试系统的应用程序编程接口(Application Programming Interface,简称API),使得在对应用程序的测试请求进行设置时,无需访问源码,或理解内部工作机制的细节,而是只需要关注测试业务逻辑流程,只需输入测试参数,系统根据测试参数生成相应的测试脚本,然后将携带有测试脚本的自动化测试请求发送到待测试的微信小程序,以对应用程序进行自动化测试,从而实现手工测试流程转换成自动化测试流程。在本发明实施例中,自动化测试系统还可以对微信小程序内的控件进行识别操作,获取页面内容,或识别微信公众号的页面控件,从而获取页面任意内容,例如文字、图片和链接等,并通过Chrome:inspect插件获取需要进行测试操作的控件对应的Xpath,从而完成控件定位,根据获取到控件信息,生成自动化测试请求,并将自动化测试请求发送到对微信小程序或微信公众号进行自动化测试,从而得到测试报告。最后根据测试报告,对测试的应用程序进行性能分析,评估应用程序的性能,例如,加载时间、CPU占用率、内存占用量或者无明显的程序缺陷等满足预设条件,由此判断该应用程序通过了自动化测试。
本发明实施例提供的基于微信开发的应用程序自动化测试方法,通过WebSocket协议和应用程序建立连接,将自动化测试请求发送到应用程序进行测试,从而得到测试报告,减少了测试成本,提升了测试效率,保证了测试质量。
在上述实施例的基础上,在所述通过WebSocket协议和应用程序建立连接之后,所述方法还包括:
对所述应用程序的控件进行定位处理,得到所述应用程序的待测试页面内容。
在上述实施例的基础上,在所述发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告之前,所述方法还包括:
根据所述待测试页面内容生成自动化测试请求,以对所述应用程序进行自动化测试。
在上述实施例的基础上,所述通过WebSocket协议和应用程序建立连接,包括:
通过所述应用程序的调试链接和所述应用程序建立连接,所述调试链接根据微信进程编号得到。
进一步地,图2为本发明实施例提供的自动化测试微信小程序页面的流程图,可参考图2所示,自动化测试微信小程序页面的具体步骤为:
步骤201,移动终端开启微信调试功能,并将待测试的微信小程序页面打开;
步骤202,自动化测试系统通过ADB工具查看微信进程编号,获取调试链接;
步骤203,自动化测试系统和移动终端建立连接;
步骤204,向待测试的微信小程序页面发送预设的测试请求;
步骤205,移动终端接收到测试请求,微信小程序页面开始执行测试,测试结束后发送测试结果到自动化测试系统。
图3为本发明实施例提供的基于微信开发的应用程序自动化测试系统的结构示意图,如图3所示,本发明实施例提供了一种基于微信开发的应用程序自动化测试系统,包括:通信连接模块301和测试引擎模块302,其中,通信连接模块301用于通过WebSocket协议和应用程序建立连接;测试引擎模块302用于发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。
本发明实施例提供的基于微信开发的应用程序自动化测试系统,通过WebSocket协议和应用程序建立连接,将自动化测试请求发送到应用程序进行测试,从而得到测试报告,减少了测试成本,提升了测试效率,保证了测试质量。
在上述实施例的基础上,所述系统还包括:
测试定位模块,用于对所述应用程序的控件进行定位处理,得到所述应用程序的待测试页面内容。
在上述实施例的基础上,所述系统还包括:
测试脚本生成模块,用于根据所述待测试页面内容生成自动化测试请求,以对所述应用程序进行自动化测试。
在上述实施例的基础上,所述系统还包括:
操作界面模块,用于输入测试参数和显示所述应用程序的测试结果,所述操作界面模块包括菜单选择单元、操作输入单元、测试进程查询单元、测试任务管理单元和测试结果生成单元。
本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图4为本发明实施例提供的电子设备结构示意图,如图4所示,该电子设备可以包括:处理器(Processor)401、通信接口(Communications Interface)402、存储器(Memory)403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法:通过WebSocket协议和应用程序建立连接;发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。
此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:通过WebSocket协议和应用程序建立连接;发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。
本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储服务器指令,该计算机指令使计算机执行上述实施例所提供的基于微信开发的应用程序自动化测试方法,例如包括:通过WebSocket协议和应用程序建立连接;发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于微信开发的应用程序自动化测试方法,其特征在于,包括:
通过WebSocket协议和应用程序建立连接;
发送自动化测试请求到所述应用程序,接收所述应用程序的测试结果,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试;
所述通过WebSocket协议和应用程序建立连接,包括:
通过所述应用程序的调试链接和所述应用程序建立连接,所述调试链接根据微信进程编号得到。
2.根据权利要求1所述的方法,其特征在于,在所述通过WebSocket协议和应用程序建立连接之后,所述方法还包括:
对所述应用程序的控件进行定位处理,得到所述应用程序的待测试页面内容。
3.根据权利要求2所述的方法,其特征在于,在所述发送自动化测试请求到所述应用程序,得到所述应用程序的测试报告之前,所述方法还包括:
根据所述待测试页面内容生成自动化测试请求,以对所述应用程序进行自动化测试。
4.一种基于微信开发的应用程序自动化测试系统,其特征在于,包括:
通信连接模块,用于通过WebSocket协议和应用程序建立连接;
测试引擎模块,用于发送自动化测试请求到所述应用程序,接收所述应用程序的测试结果,得到所述应用程序的测试报告,若所述测试报告满足预设条件,则判断获知所述应用程序通过测试;
所述通过WebSocket协议和应用程序建立连接,包括:
通过所述应用程序的调试链接和所述应用程序建立连接,所述调试链接根据微信进程编号得到。
5.根据权利要求4所述的系统,其特征在于,所述系统还包括:
测试定位模块,用于对所述应用程序的控件进行定位处理,得到所述应用程序的待测试页面内容。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括:
测试脚本生成模块,用于根据所述待测试页面内容生成自动化测试请求,以对所述应用程序进行自动化测试。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:
操作界面模块,用于输入测试参数和显示所述应用程序的测试结果,所述操作界面模块包括菜单选择单元、操作输入单元、测试进程查询单元、测试任务管理单元和测试结果生成单元。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任一项所述方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至3任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811589487.6A CN109739754B (zh) | 2018-12-25 | 2018-12-25 | 基于微信开发的应用程序自动化测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811589487.6A CN109739754B (zh) | 2018-12-25 | 2018-12-25 | 基于微信开发的应用程序自动化测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739754A CN109739754A (zh) | 2019-05-10 |
CN109739754B true CN109739754B (zh) | 2022-03-11 |
Family
ID=66361179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811589487.6A Active CN109739754B (zh) | 2018-12-25 | 2018-12-25 | 基于微信开发的应用程序自动化测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739754B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750463B (zh) * | 2019-10-29 | 2023-06-23 | 百度在线网络技术(北京)有限公司 | 一种小程序测试方法、装置、系统、设备及介质 |
CN113722020B (zh) * | 2020-05-26 | 2024-06-11 | 腾讯科技(深圳)有限公司 | 接口调用方法、装置和计算机可读存储介质 |
CN113760684A (zh) * | 2020-06-02 | 2021-12-07 | 北京奇虎科技有限公司 | 一种小程序sdk真机自动化测试方法、系统、存储介质及其计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2759956A1 (en) * | 2013-01-25 | 2014-07-30 | Codenomicon Oy | System for testing computer application |
CN106201846A (zh) * | 2016-06-30 | 2016-12-07 | 微梦创科网络科技(中国)有限公司 | 自动化测试中的性能监控方法及装置 |
CN107678956A (zh) * | 2017-09-22 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种服务器自动化测试管理系统及方法 |
CN107783899A (zh) * | 2017-08-25 | 2018-03-09 | 上海壹账通金融科技有限公司 | 应用程序中h5页面的测试方法、装置和计算机设备 |
-
2018
- 2018-12-25 CN CN201811589487.6A patent/CN109739754B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2759956A1 (en) * | 2013-01-25 | 2014-07-30 | Codenomicon Oy | System for testing computer application |
CN106201846A (zh) * | 2016-06-30 | 2016-12-07 | 微梦创科网络科技(中国)有限公司 | 自动化测试中的性能监控方法及装置 |
CN107783899A (zh) * | 2017-08-25 | 2018-03-09 | 上海壹账通金融科技有限公司 | 应用程序中h5页面的测试方法、装置和计算机设备 |
CN107678956A (zh) * | 2017-09-22 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种服务器自动化测试管理系统及方法 |
Non-Patent Citations (1)
Title |
---|
"微信小程序自动化测试实践";歪歪欧巴;《博客园 公开网址:https://www.cnblogs.com/yyoba/p/9455519.html》;20180810;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109739754A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739754B (zh) | 基于微信开发的应用程序自动化测试方法及系统 | |
CN107133180B (zh) | 动态页面的测试方法、测试装置及存储介质 | |
CN110334021B (zh) | 接口测试案例的生成方法、装置、设备及存储介质 | |
US20190034318A1 (en) | Hardware-Software Co-Verification for Debugging Firmware on a Hardware Simulator | |
CN109582556B (zh) | 应用程序在移动终端运行情况的测试方法、装置和系统 | |
CN106648556B (zh) | 前后端集成开发测试的方法及装置 | |
CN104615462B (zh) | 跨平台的移动应用生成服务端及系统 | |
CN104821954A (zh) | 一种跨平台远程过程调用方法 | |
CN107861875B (zh) | 一种混合移动应用的模拟方法及系统 | |
CN105320589B (zh) | 云测试环境中测试脚本自动解析系统及其实现方法 | |
CN107229566B (zh) | 用于soa服务转换语言保持功能一致性的方法及系统 | |
CN109918310A (zh) | 一种建模平台接口测试方法 | |
WO2020147420A1 (zh) | 应用性能数据采集方法、终端、计算机设备及存储介质 | |
CN114466047B (zh) | 物联网设备便捷接入物联网平台的方法、平台、设备及介质 | |
CN108021503A (zh) | 自动化功能测试的方法、装置和计算机存储介质 | |
CN114510421A (zh) | 一种测试方法、装置、芯片及模组设备 | |
CN114185791A (zh) | 一种数据映射文件的测试方法、装置、设备及存储介质 | |
CN114661615A (zh) | 一种fpga软件测试方法和设备 | |
CN105224420B (zh) | 一种自动解析终端异常的分析方法及系统 | |
CN113590564B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
CN108416023B (zh) | 一种模拟用户操作回写系统数据的方法 | |
CN109344064B (zh) | 一种应用远程调试方法 | |
US20190196945A1 (en) | Entity performance and usability analysis framework | |
CN114448832B (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 |