CN109344058A - 一种小程序自动化测试方法 - Google Patents
一种小程序自动化测试方法 Download PDFInfo
- Publication number
- CN109344058A CN109344058A CN201811090663.1A CN201811090663A CN109344058A CN 109344058 A CN109344058 A CN 109344058A CN 201811090663 A CN201811090663 A CN 201811090663A CN 109344058 A CN109344058 A CN 109344058A
- Authority
- CN
- China
- Prior art keywords
- mobile phone
- small routine
- interface
- page
- elements
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种小程序自动化测试方法,通过手机里面的引擎和小程序通信,获取小程序当前页面元素,最后解析和过滤非当前页面元素,即获得当前界面的有效元素。通过PC端发送一条指令给手机里面的引擎,比如想要查找手机界面上的某个元素A,那么手机里面的引擎就会自动检索出来当前页面是否包含此元素A,从而可以实现小程序测试的自动化。由于可以通过PC将想要查找的元素发送给手机,因此可以查找任何需要的界面元素,从而可以实现测试的定制化。
Description
技术领域
本申请涉及测试工具和安卓手机微信小程序的控制技术领域,尤其涉及一种小程序自动化测试方法。
背景技术
微信小程序,简称小程序,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。现在的小程序测试可以通过腾讯的TBS Studio工具,但是该工具是封闭的,不能实现定制化和自动化。所以一套可以实现小程序自动化测试的方法十分有必要。
发明内容
针对现有技术的不足,本发明旨在提供一种小程序自动化测试方法,可以实现小程序测试的自动化、定制化。
为了实现上述目的,本发明采用如下技术方案:
一种小程序自动化测试方法,包括如下步骤:
S1、将手机界面停留在微信小程序界面;
S2、手机引擎扫描UNIX Domain Socket,获取与微信小程序的进程通信的端口,得到微信小程序的多个端口号;
S3、手机引擎通过LocalSocket跨进程请求所有微信小程序的端口号,得到各端口号对应的页面详情,包括页面状态;
S4、获取页面的所有DOM内容:手机引擎请求页面详情里面的websocket地址,请求该websocket地址得到当前页面的所有元素;
S5、手机引擎过滤出隐藏的、内容空的页面元素、界面DOM非聚焦的状态以及非当前微信小程序的界面,得到当前界面的所有元素;
S6、录制书写测试逻辑时记录所需要的当前界面的关键元素,在进行自动化测试的时候,通过PC端向手机引擎发送关键元素的查找指令,手机引擎在步骤S5中得到的当前界面的所有元素中查找该关键元素,如果找到则当前界面即为期望的结果,否则直接报告错误。
进一步地,步骤S3中,所述页面状态包括页面的宽、高、显示、位置、websocket地址、描述。
进一步地,步骤S4具体通过js执行。
本发明的有益技术效果在于:
本发明方法通过手机里面的引擎和小程序通信,获取小程序当前页面元素,最后解析和过滤非当前页面元素,即获得当前界面的有效元素。通过PC端发送一条指令给手机里面的引擎,比如想要查找手机界面上的某个元素A,那么手机里面的引擎就会自动检索出来当前页面是否包含此元素A,从而可以实现小程序测试的自动化。由于可以通过PC将想要查找的元素发送给手机,因此可以查找任何需要的界面元素,从而可以实现测试的定制化。
本发明可以同时自动化测试小程序在不同的手机品牌和手机版本上的运行效果,大大节约了人力成本和时间,提高了测试的效率。
附图说明
图1为本发明实施例的方法原理示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,以下实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
如图1所示,一种小程序自动化测试方法,包括如下步骤:
S1、将手机界面停留在微信小程序界面;
S2、手机引擎扫描UNIX Domain Socket,获取与微信小程序的进程通信的端口,得到微信小程序的多个端口号;
S3、手机引擎通过LocalSocket跨进程请求所有微信小程序的端口号,得到各端口号对应的页面详情,包括页面状态(宽、高、显示、位置、websocket地址、描述等)。
S4、获取页面的所有DOM内容:手机引擎请求页面详情里面的websocket地址,请求该websocket地址得到当前页面的所有元素。具体通过js执行,得到执行的结果内容,包括页面所有元素,比如登陆界面的输入账号文本框、输入密码文本框、登陆按钮等。
S5、手机引擎过滤出隐藏的、内容空的页面元素、界面DOM非聚焦的状态以及非当前微信小程序的界面,得到当前界面的所有元素;
S6、录制书写测试逻辑时记录所需要的当前界面的关键元素,在进行自动化测试的时候,通过PC端向手机引擎发送关键元素的查找指令,手机引擎在步骤S5中得到的当前界面的所有元素中查找该关键元素,如果找到则当前界面即为期望的结果,否则直接报告错误。
实施例1
在本实施例中,所需要的自动化测试逻辑为:
1、在登陆界面—记录登陆界面关键元素A
2、选择输入账号—-记录输入账号文本框元素B
3、然后输入密码—记录输入密码文本框元素C
4、点击登陆按钮—记录登陆按钮元素D
5、登陆成功界面—记录登陆成功界面关键元素E
通过图1的方法流程,获取到先后顺序为A、B、C、D、E一个5个元素作为自动化测试的主线流程。这个流程就是实现自动化测试的主要逻辑。
在自动化测试的过程中步骤:
1、通过图1的流程先获取A元素,获取成功,计算A元素在屏幕的坐标,通过安卓uiautomator自动化测试框架对A元素进行点击和输入账号的操作。
2、查找B、C元素和步骤1相同。
3、查找D和步骤1一样,在执行的时候只做点击的操作。
4、查找E和步骤1一样,在执行的时候只做验证,如果存在E元素说明整个自动化测试流程是通过的,也说明登陆是成功的。如果是失败,则说明中间存在问题,可以截图保留失败的信息。
5、这样就可以同记录下来的主逻辑测试流程的脚本文件,实现自动化测试的。这样可以避免多人多设备的手动测试,一个人一个脚本文件录制,就可以实现单人对多设备的自动化执行测试。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。
Claims (3)
1.一种小程序自动化测试方法,其特征在于,包括如下步骤:
S1、将手机界面停留在微信小程序界面;
S2、手机引擎扫描UNIX Domain Socket,获取与微信小程序的进程通信的端口,得到微信小程序的多个端口号;
S3、手机引擎通过LocalSocket跨进程请求所有微信小程序的端口号,得到各端口号对应的页面详情,包括页面状态;
S4、获取页面的所有DOM内容:手机引擎请求页面详情里面的websocket地址,请求该websocket地址得到当前页面的所有元素;
S5、手机引擎过滤出隐藏的、内容空的页面元素、界面DOM非聚焦的状态以及非当前微信小程序的界面,得到当前界面的所有元素;
S6、录制书写测试逻辑时记录所需要的当前界面的关键元素,在进行自动化测试的时候,通过PC端向手机引擎发送关键元素的查找指令,手机引擎在步骤S5中得到的当前界面的所有元素中查找该关键元素,如果找到则当前界面即为期望的结果,否则直接报告错误。
2.根据权利要求1所述的小程序自动化测试方法,其特征在于,步骤S3中,所述页面状态包括页面的宽、高、显示、位置、websocket地址、描述。
3.根据权利要求1所述的小程序自动化测试方法,其特征在于,步骤S4中,步骤S4具体通过js执行。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811090663.1A CN109344058B (zh) | 2018-09-18 | 2018-09-18 | 一种小程序自动化测试方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811090663.1A CN109344058B (zh) | 2018-09-18 | 2018-09-18 | 一种小程序自动化测试方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN109344058A true CN109344058A (zh) | 2019-02-15 |
| CN109344058B CN109344058B (zh) | 2021-06-15 |
Family
ID=65306071
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201811090663.1A Active CN109344058B (zh) | 2018-09-18 | 2018-09-18 | 一种小程序自动化测试方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109344058B (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110750463A (zh) * | 2019-10-29 | 2020-02-04 | 百度在线网络技术(北京)有限公司 | 一种小程序测试方法、装置、系统、设备及介质 |
| CN110928791A (zh) * | 2019-11-27 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 程序测试方法、装置、计算机设备和存储介质 |
| CN111881338A (zh) * | 2020-08-03 | 2020-11-03 | 深圳一块互动网络技术有限公司 | 一种基于社交软件轻应用小程序的印刷品内容检索方法 |
| CN113626330A (zh) * | 2021-08-11 | 2021-11-09 | 上海哔哩哔哩科技有限公司 | 混合模式移动应用调试方法及系统 |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1394091A (zh) * | 2001-06-22 | 2003-01-29 | 摩托罗拉公司 | 在通信系统中发射数据的方法和装置 |
| CN102129405A (zh) * | 2010-01-13 | 2011-07-20 | 微软公司 | 跨浏览器交互性测试 |
| CN103927253A (zh) * | 2013-01-11 | 2014-07-16 | 阿里巴巴集团控股有限公司 | 多浏览器兼容性测试方法及系统 |
| CN104881358A (zh) * | 2015-05-28 | 2015-09-02 | 南京南瑞继保电气有限公司 | 一种程序仿真测试方法及系统 |
| US20160241588A1 (en) * | 2014-03-15 | 2016-08-18 | Kenneth F. Belva | Methods for determining cross-site scripting and related vulnerabilities in applications |
| US20160308921A1 (en) * | 2008-11-25 | 2016-10-20 | Polycom, Inc. | Method and system for dispatching received sessions between a pluratlity of instances of an application using the same ip port |
| US20170337122A1 (en) * | 2016-05-18 | 2017-11-23 | Dynatrace Llc | Synthetic test recorder installed inline with a web portal |
| CN107728999A (zh) * | 2017-11-14 | 2018-02-23 | 苏州奇松软件有限公司 | 一种App、小程序接口模拟的方法和系统 |
| CN107729230A (zh) * | 2017-09-18 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于控件模式下的web自动化测试装置及测试方法 |
-
2018
- 2018-09-18 CN CN201811090663.1A patent/CN109344058B/zh active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1394091A (zh) * | 2001-06-22 | 2003-01-29 | 摩托罗拉公司 | 在通信系统中发射数据的方法和装置 |
| US20160308921A1 (en) * | 2008-11-25 | 2016-10-20 | Polycom, Inc. | Method and system for dispatching received sessions between a pluratlity of instances of an application using the same ip port |
| CN102129405A (zh) * | 2010-01-13 | 2011-07-20 | 微软公司 | 跨浏览器交互性测试 |
| CN103927253A (zh) * | 2013-01-11 | 2014-07-16 | 阿里巴巴集团控股有限公司 | 多浏览器兼容性测试方法及系统 |
| US20160241588A1 (en) * | 2014-03-15 | 2016-08-18 | Kenneth F. Belva | Methods for determining cross-site scripting and related vulnerabilities in applications |
| CN104881358A (zh) * | 2015-05-28 | 2015-09-02 | 南京南瑞继保电气有限公司 | 一种程序仿真测试方法及系统 |
| US20170337122A1 (en) * | 2016-05-18 | 2017-11-23 | Dynatrace Llc | Synthetic test recorder installed inline with a web portal |
| CN107729230A (zh) * | 2017-09-18 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种基于控件模式下的web自动化测试装置及测试方法 |
| CN107728999A (zh) * | 2017-11-14 | 2018-02-23 | 苏州奇松软件有限公司 | 一种App、小程序接口模拟的方法和系统 |
Non-Patent Citations (1)
| Title |
|---|
| 朱桂彪: ""移动端(微信等)使用 vConsole调试console"", 《HTTPS://BLOG.CSDN.NET/M0_37036014/ARTICLE/DETAILS/80113635》 * |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110750463A (zh) * | 2019-10-29 | 2020-02-04 | 百度在线网络技术(北京)有限公司 | 一种小程序测试方法、装置、系统、设备及介质 |
| CN110928791A (zh) * | 2019-11-27 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 程序测试方法、装置、计算机设备和存储介质 |
| CN110928791B (zh) * | 2019-11-27 | 2022-03-01 | 腾讯科技(深圳)有限公司 | 程序测试方法、装置、计算机设备和存储介质 |
| US11983101B2 (en) | 2019-11-27 | 2024-05-14 | Tencent Technology (Shenzhen) Company Limited | Program testing method and apparatus, computer device, and storage medium |
| CN111881338A (zh) * | 2020-08-03 | 2020-11-03 | 深圳一块互动网络技术有限公司 | 一种基于社交软件轻应用小程序的印刷品内容检索方法 |
| CN113626330A (zh) * | 2021-08-11 | 2021-11-09 | 上海哔哩哔哩科技有限公司 | 混合模式移动应用调试方法及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109344058B (zh) | 2021-06-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9152521B2 (en) | Systems and methods for testing content of mobile communication devices | |
| US9161238B2 (en) | Mobile device monitoring and testing | |
| CN109344058A (zh) | 一种小程序自动化测试方法 | |
| CN110716853A (zh) | 一种测试脚本录制方法、应用程序测试方法和相关装置 | |
| CN104679658A (zh) | Web页面的测试方法和系统 | |
| CN103685251A (zh) | 一种面向移动互联网的Android恶意软件检测平台 | |
| US9798650B1 (en) | Application testing system and method | |
| CN110554962A (zh) | 回归测试的流程覆盖方法、服务器及计算机可读存储介质 | |
| CN103744787A (zh) | 一种手机自动化测试方法 | |
| CN103324728A (zh) | 移动终端的应用程序查找方法和装置 | |
| CN103984626A (zh) | 一种生成测试用例脚本的方法及装置 | |
| CN104902547A (zh) | WiFi网络连接方法及装置 | |
| CN109783343A (zh) | 控件测试方法、装置、客户端设备和计算机可读存储介质 | |
| CN105740144A (zh) | 一种Android移动终端的自动化测试方法及系统 | |
| CN111143213A (zh) | 软件自动化测试方法和装置及电子设备 | |
| CN110717184A (zh) | 一种分布式安全测试系统 | |
| CN105809163A (zh) | 连接wifi的方法和装置 | |
| CN107357728A (zh) | 测试软件的方法和电子设备 | |
| CN108710708A (zh) | 报表处理方法、装置、介质及电子设备 | |
| US10719482B2 (en) | Data comparison | |
| CN111444109B (zh) | 一种移动端ui自动化测试方法及系统 | |
| CN113206849A (zh) | 一种基于ghidra的漏洞扫描方法、装置及相关设备 | |
| US20160034381A1 (en) | Identifying transport-level encoded payloads | |
| CN104991857A (zh) | 跟踪调试方法及装置 | |
| CN117201219A (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 |