CN107729246B - 针对目标应用的辅助测试方法、装置、设备及存储介质 - Google Patents
针对目标应用的辅助测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN107729246B CN107729246B CN201710953807.0A CN201710953807A CN107729246B CN 107729246 B CN107729246 B CN 107729246B CN 201710953807 A CN201710953807 A CN 201710953807A CN 107729246 B CN107729246 B CN 107729246B
- Authority
- CN
- China
- Prior art keywords
- interface
- data
- access
- test
- application
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种针对目标应用辅助测试方法、装置、设备及存储介质,目标应用包括应用客户端和应用服务端。其中,针对所述应用服务端提供的至少部分访问接口中的每个访问接口,基于所述访问接口的接口属性信息向所述应用服务端发送第一数据访问请求,并接收所述应用服务端响应于所述第一数据访问请求下发的数据文件,整合所述访问接口的接口属性信息和与所述访问接口对应的数据文件,以得到所述至少部分访问接口中每个访问接口的数据下发规则。由此,在对目标应用进行测试时,可以根据测试需要构造的对象或场景,对相应接口的数据下发规则进行修改,以使得基于修改后的数据下发规则下发的数据能够满足测试需求。
Description
技术领域
本发明涉及软件测试领域,特别是涉及一种用于构造复杂的特殊测试场景的辅助测试方案。
背景技术
软件测试是指在规定的条件下对应用程序进行操作,以发现程序错误,衡量应用质量,对其是否能满足设计要求进行评估的过程。测试用例(TestCase)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
在对应用进行测试的过程中,经常需要对一些不容易构造或获取的特殊对象进行测试。例如,在对依赖于敏感信息的接口,如充值和购买接口,进行测试时,不可能每次都用真实的余额进行购买,并且即使是使用真实余额购买,也很难构造出余额不足等特殊场景以用于特殊情形测试。
另外,为了实现一些特殊的运营活动,如五一送书豆,十一送豆券等活动,需要服务端配置一些后台字段控制运营弹窗,运营弹窗会在应用客户端界面弹出,因此后台配置的这些运营弹窗,无疑会阻碍自动化测试的正常运行。
有鉴于此,在测试过程中如何方便地构造满足测试需求的对象和/或场景,是目前亟待解决的问题。
发明内容
本发明的一个目的在于提出一种辅助测试方案,在针对目标应用进行测试前,可以根据测试需求,利用本发明获取与测试需求相关的接口的(默认)数据下发规则,如此在获取的数据下发规则的基础上,可以根据测试需求具体需要构造的对象或场景,对其进行修改。
根据本发明的一个方面,提供了一种针对目标应用的辅助测试方法,其中,目标应用包括应用客户端和应用服务端,该方法包括:针对应用服务端提供的至少部分访问接口中的每个访问接口,基于访问接口的接口属性信息向应用服务端发送第一数据访问请求;接收应用服务端响应于第一数据访问请求下发的数据文件;整合访问接口的接口属性信息和与访问接口对应的数据文件,以得到至少部分访问接口中每个访问接口的数据下发规则。
由此,在对目标应用进行测试之前,可以根据测试需要构造的对象或场景,获取相关的接口的数据下发规则。在获取的数据下发规则的基础上,可以根据具体需要构造的对象和/或场景,对相应接口的数据下发规则进行修改,以使得基于修改后的数据下发规则下发的数据输入到应用客户端后,应用客户端在运行过程中能够提供满足测试需求的测试对象和/或场景。
优选地,该辅助测试方法还可以包括:获取应用客户端与应用服务端进行数据通信时所访问的接口的接口属性信息。
接口属性信息涉及的接口可以包括所述至少部分访问接口,或者即为所述至少部分访问接口。由此,可以利用获取的接口属性信息,向相应的访问接口发送第一数据访问请求。
优选地,接口属性信息可以包括以下一项或多项:接口名称;唯一的接口ID;接口的URL;请求类型;以及与接口相关的Post参数。
优选地,整合访问接口的接口属性信息和与访问接口对应的数据文件的步骤可以包括:将访问接口的接口属性信息和与访问接口对应的数据文件进行拼装,以得到数据下发规则,其中,数据下发规则包括接口属性信息和数据文件。
由此,通过简单的拼装操作即可得到接口的数据下发规则。
优选地,至少部分访问接口为与针对目标应用的测试用例的测试需求相关的接口,测试需求可以包括:测试对象需求和/或弹窗设置需求。
由此,可以仅获取与测试过程中难以构造的对象和/或需要构造的场景相关的接口的数据下发规则。
优选地,该辅助测试方法还可以包括:根据针对目标应用的测试用例的测试需求,对至少部分访问接口中与测试需求相关的目标访问接口的数据下发规则进行修改,以得到目标访问接口的符合测试需求的特殊数据下发规则。
由此,基于特殊数据下发规则下发的数据在输入应用客户端后,应用客户端在运行过程中能够提供满足测试需求的测试对象和/或场景。
优选地,该辅助测试方法还可以包括:构建模拟服务器,模拟服务器提供了具有特殊数据下发规则的目标访问接口;在运行应用客户端以执行测试用例的过程中,应用客户端向模拟服务器发送第二数据访问请求;在模拟服务器提供了与第二数据访问请求对应的目标访问接口的情况下,接收模拟服务器基于特殊数据下发规则下发的数据文件。
由此,模拟服务器可以视为与应用客户端对应的服务器端,应用客户端可以从模拟服务器获取能够构造测试需求的对象和/或场景的数据文件。
优选地,该辅助测试方法还可以包括:在模拟服务器未提供与第二数据访问请求对应的目标访问接口的情况下,向应用服务端发送第二数据访问请求,并接收从应用服务端下发的数据文件。
由此,模拟服务器作为代理服务器,可以仅针对难以构造或构造起来较为繁琐的构造特殊对象或场景所关联的接口(例如充值接口)进行模拟,提供相应的符合测试需求的特殊数据下发规则。对于这类接口,应用客户端可以从模拟服务器获取数据,对于其他接口数据,应用客户端可以从应用服务端正常获取。
根据本发明的另一个方面,还提供了一种针对目标应用的辅助测试装置,其中,目标应用包括应用客户端和应用服务端,该装置包括:请求发送单元,用于针对应用服务端提供的至少部分访问接口中的每个访问接口,基于访问接口的接口属性信息向应用服务端发送第一数据访问请求;数据接收单元,用于接收应用服务端响应于第一数据访问请求下发的数据文件;整合单元,用于整合访问接口的接口属性信息和与访问接口对应的数据文件,以得到至少部分访问接口中每个访问接口的数据下发规则。
优选地,该辅助测试装置还可以包括:接口属性信息获取单元,用于获取应用客户端与应用服务端进行数据通信时所访问的接口的接口属性信息,接口属性信息涉及的接口包括至少部分访问接口。
优选地,至少部分接口为与针对目标应用的测试用例的测试需求相关的接口,测试需求可以包括:测试对象需求和/或弹窗设置需求。
优选地,该辅助测试装置还可以包括:规则修改单元,用于根据针对目标应用的测试用例的测试需求,对至少部分访问接口中与测试需求相关的目标访问接口的数据下发规则进行修改,以得到目标访问接口的符合测试需求的特殊数据下发规则。
优选地,该辅助测试装置还可以包括:构造单元,用于构建模拟服务器,模拟服务器提供了具有特殊数据下发规则的目标访问接口,在运行应用客户端以执行测试用例的过程中,应用客户端向模拟服务器发送第二数据访问请求,在模拟服务器提供了与第二数据访问请求对应的目标访问接口的情况下,接收模拟服务器基于特殊数据下发规则下发的数据文件。
优选地,在模拟服务器未提供与第二数据访问请求对应的目标访问接口的情况下,应用客户端向应用服务端发送第二数据访问请求,并接收从应用服务端下发的数据文件。
根据本发明的另一个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上文述及的方法。
根据本发明的另一个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行上文述及的方法。
利用本发明的辅助测试方法、装置、计算设备及存储介质,在对目标应用进行测试前,可以根据测试需要构造的对象和/或场景,获取目标应用的应用服务端提供的接口中与需要构造的对象和/或场景相关的接口的数据下发规则。如此,在获取的数据下发规则的基础上,可以根据需要构造的对象和/或场景,对相关接口的数据下发规则进行修改,以使得基于修改后的规则下发的数据输入到应用客户端后,应用客户端在运行过程中能够提供满足测试需求的测试对象和/或场景。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是示出了根据本发明一实施例的辅助测试方法的示意性流程图。
图2是示出了根据本发明另一实施例的辅助测试方法的示意性流程图。
图3是示出了根据本发明一实施例的辅助测试装置的结构的示意性方框图。
图4是示出了根据本发明一实施例的计算设备的结构的示意性方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在描述本发明之前,首先就本发明的发明机理做简要说明。
本发明主要是针对C/S架构的应用,这类应用一般包括应用客户端和应用服务端。顾名思义,应用客户端是指安装在客户端设备如手机、IPAD、笔记本等终端设备上的客户端应用程序,应用服务端位于服务器端。应用客户端可以通过向应用服务端发送数据请求,接收应用服务端下发的数据文件,并在应用客户端上显示。具体地,应用服务端可以提供可供应用客户端访问的多个访问接口,应用客户端可以根据需要请求的数据类型向应用服务端提供的访问接口中的相应接口发送数据请求。
针对这类应用进行测试时,主要是测试在客户端设备上安装的应用客户端是否正常运行,或者运行中应用客户端中显示的应用界面是否符合预期。
如上文所述,在测试过程中,经常需要对一些不容易构造或获取的特殊对象进行测试。例如,在对依赖于敏感信息的接口,如充值和购买接口,进行测试时,不可能每次都用真实的余额进行购买,并且即使是使用真实余额购买,也很难构造出余额不足等特殊场景以用于特殊情形测试。另外,对于服务端配置的运营弹窗,也会阻碍自动化测试的正常运行。因此,在测试过程中如何方便地构造能够满足测试需求的对象和/或场景(如去除运营弹窗),是目前亟待解决的问题。
针对这一问题,发明人深入研究后发现,应用程序(客户端应用程序,即应用客户端)读取的数据一般有以下三个来源。
1)从应用服务端请求的数据。包括一些全局的配置信息,应用程序界面中显示的大部分信息。这类数据一般占应用程序输入数据的80%。
2)用户通过界面输入的数据。一般来自文本框的输入,会被上传到后台接口。
3)客户端存储在本地的数据。一般用于存储一些本地的配置信息,安卓应用一般使用SharedPreference组件进行存储,IOS应用一般使用NSUserDefaults组件存储在plist文件中。例如启动App三次以后,弹出应用商店评价弹窗,应用程序自安装后的启动次数一般就被存储在客户端本地。这类数据一般占应用程序输入数据的5%左右。
可见,如果能够控制从应用服务端请求的数据,则可以很大程度上控制应用程序的输入信息,使应用程序的界面输出变得可控,从而可以使得应用程序的界面输出能够满足测试需求。
有鉴于此,发明人提出,在对目标应用进行测试前,可以根据测试需要构造的对象和/或场景,获取目标应用的应用服务端提供的接口中与需要构造的对象和/或场景相关的接口的(默认)数据下发规则。如此,在后续进行测试时,可以利用获取的数据下发规则,根据需要构造的对象和/或场景,对相关接口的数据下发规则进行修改,以使得基于修改后的规则下发的数据输入到应用客户端后,应用客户端在运行过程中能够提供满足测试需求的测试对象和/或场景。其中,此处述及的数据下发规则是指应用服务端接收到应用客户端发送的针对某一访问接口的数据访问请求时的数据下发规则。
举例来说,针对书籍阅读类应用,在测试过程中需要在应用的书架首页显示名称较长的书籍时,可以获取应用的书架首页接口的数据下发规则,并对其进行修改,如可以将书架首页中的书名修改为“《千金归来之我的绝世靓女女朋友后传》”。由此,根据修改后的数据下发规则下发的数据文件输入到应用客户端后,在应用客户端的书架首页界面上可以显示符合测试需求的测试对象(书名较长的书籍)。
至此,就本发明的基本构思做了简要说明。根据上文描述可知,本发明总体方案主要包括三部分:应用服务端提供的访问接口的(默认)数据下发规则的获取、数据下发规则的修改、基于修改后的数据下发规则进行测试。下面分别就这三部分进行详细说明。
一、数据下发规则的获取
图1是示出了根据本发明一实施例的针对目标应用的辅助测试方法的示意性流程图。其中,图1主要示出了应用服务端提供的访问接口的(默认)数据下发规则的获取过程。
参见图1,在步骤S110,针对应用服务端提供的至少部分访问接口中的每个访问接口,基于访问接口的接口属性信息向应用服务端发送第一数据访问请求。
此处述及的至少部分访问接口优选地是与测试需求相关的接口。例如,针对目标应用,在需要对应用商城中商品购买事件进行测试时,可以针对充值和购买等相关接口发送第一数据访问请求。
接口属性信息可以包括接口名称、唯一的接口ID、接口的URL、请求类型、与接口相关的Post参数等诸多项信息中的一项或多项。向应用服务端发送的第一数据访问请求中可以携带请求访问的访问接口的接口属性信息,如此应用服务端可以下发与第一数据访问请求对应的数据文件。
作为本发明的一个实施例,可以预先获取应用客户端与应用服务端进行数据通信时所访问的接口的接口属性信息。例如,可以通过应用程序的后台埋点接口统计用户使用应用客户端的行为,在记录用户行为的同时,可以记录用户访问的相关接口信息,如可以包括接口名称、唯一的接口ID、接口的URL、请求类型、与接口相关的Post参数等接口属性信息。获取到的接口属性信息可以发送到埋点服务器,由埋点服务器去除其中的重复信息。对于去重后的接口属性信息所涉及的访问接口,可以使用python的requests库向应用服务端发送第一数据访问请求。整个过程可以自动进行,如此使得经过后续处理(步骤S120、步骤S130)得到的访问接口的(默认)数据下发规则的规则列表会自动扩展和维护,不需要手动定义,测试人员只需要对默认规则稍加修改,就可以获得自身需要的各种数据下发规则。
在步骤S120,接收应用服务端响应于第一数据访问请求下发的数据文件。应用服务端下发的数据文件可以是jason数据或HTML页面,其具体格式与目标应用的开发方式相关,此处不做限定。
在步骤S130,整合访问接口的接口属性信息和与访问接口对应的数据文件,以得到至少部分访问接口中每个访问接口的数据下发规则。
数据下发规则是指应用服务端接收到应用客户端发送的针对某一访问接口的数据访问请求时的数据下发规则。由于下发的数据文件是应用服务端基于自身业务处理逻辑下发的,其中包含具体的配置信息。因此,可以通过对数据文件进行分析,得到接口的数据下发规则。
作为本发明的一个可选实施例,可以直接将对应于同一访问接口的接口属性信息和数据文件进行拼接,得到该访问接口的数据下发规则,这种情况下得到的数据下发规则可以包括接口属性信息和具体的数据文件。由此,后续根据测试需求,需要对数据下发规则进行修改时,可以对数据文件中的具体参数进行修改。例如,在接口为“书架首页接口”时,数据下发规则可以是架首页接口属性信息+书架首页接口返回的数据文件,在需要在书架首页显示较长的书名时,可以对书架首页返回的数据文件中的书名进行修改,改为名称较长的书名,如“千金归来之我的绝世靓女女朋友后传”。由此,基于修改后的数据下发规则下发的数据文件能够满足测试需求。
作为本发明的另一个可选实施例,针对单个访问接口,可以向应用服务端发送一次或多次数据访问请求,并接收从应用服务端响应于一次或多次数据访问请求下发的一个或多个数据文件。然后可以通过对对应同一个访问接口的一个或多个数据文件的结构进行分析,构造访问接口的数据下发规则。此时构造得到的数据下发规则能够反映应用服务端针对该访问接口的数据下发逻辑。即这种情况下构造的数据下发规则可以是通过对应用服务端下发的数据文件进行分析得到的能够体现其数据下发逻辑的规则信息。例如,可以通过对一个或多个数据文件进行分析,得到应用服务端针对该访问接口下发的基本配置信息,其中涉及的具体参数的值可以是默认值也可以是空值。即数据下发规则可以包括接口属性信息和基本配置信息。在后续根据测试需求,需要对数据下发规则进行修改时,可以对基本配置信息中相关参数的值进行修改或填充。使得修改后的配置信息可以符合测试需求。例如,在接口为“书架首页接口”时,数据下发规则可以是架首页接口属性信息+书架首页接口返回的基本配置信息,在需要在书架首页显示较长的书名时,可以对基本配置信息中书架首页书名进行修改或赋值,改为名称较长的书名,如“千金归来之我的绝世靓女女朋友后传”。
至此,结合图1就数据下发规则的获取过程做了详细说明。
二、数据下发规则的修改
在本发明中,测试需求主要是指测试过程中需要构建的测试对象和/或测试场景(测试环境),这类测试对象和/或测试场景在由应用服务端构造时构造起来一般较为繁琐。例如,在对充值和购买接口进行测试时,需要构造余额充足、余额不足等多种测试场景。再例如,在测试书架首页能否显示较长的名称的书籍时,需要在应用客户端中的书架首页中显示较长名称的书籍这一测试对象。还例如,在测试过程中,还需要构造无弹窗的测试环境,以避免应用弹窗对测试的影响。对于这类测试对象和/或测试场景,在由应用服务端构造时,需要对应用服务端的数据下发逻辑进行修改,这无疑增添测试成本。
因此,在本发明中,在利用上述方案得到应用服务端提供的访问接口的数据下发规则后,可以根据针对目标应用的测试用例的测试需求,对获取的访问接口中与测试需求相关的目标访问接口的数据下发规则进行修改,以得到目标访问接口的符合测试需求的特殊数据下发规则。基于特殊数据下发规则下发的数据输入到应用客户端后,能够在应用客户端上构造出满足测试需求的测试对象和/或测试场景。
如上文所述,在数据下发规则为通过对接口属性信息和数据文件拼接而成时,可以根据测试需求,对数据文件中的具体参数进行修改,以得到符合测试需求的特殊数据下发规则。例如,当测试需求为测试对象需求,如需要在书架首页显示较长名称的书籍,可以对相应接口的数据文件中的具体参数(书架首页书籍名称)进行修改,以使得基于修改后的数据文件输入到应用客户端后,能够在应用客户端中构造符合测试需求的测试对象。再例如,当测试需求为测试场景需求,如需要去除弹窗时,可以通过对相应接口的数据文件中的部分字段值进行设置,阻止部分特殊弹窗的开启,例如可以将弹窗字段设置为false,实现屏蔽客户端弹窗的功能,提升客户端自动化测试的稳定性。
另外,如上文所述,在数据下发规则为通过对数据文件解析得到的基本配置信息时,可以通过对基本配置信息中的相关参数进行修改或填充,以得到符合测试需求的特殊数据下发规则。具体修改过程此处不再赘述。
作为本发明的一个可选实施例,在得到应用服务端提供的访问接口的数据下发规则后,可以对得到的数据下发规则信息进行维护。例如,可以使用python+flask框架搭建一个基于web的规则定制平台,平台上可以维护利用上文结合图1所示的方法得到的数据下发规则。其中,数据下发规则可以与相应的关键字关联存储,以便于测试人员搜索。具体地,测试人员可以根据其测试需求,基于关键字在平台上搜索与其测试需求相关的访问接口的数据下发规则,并对搜索到的规则进行修改,生成符合其测试需求的特殊数据下发规则。其中,特殊数据下发规则相对于未修改的数据下发规则可以多两个字段,一个是唯一的规则id字段,一个是规则所有者字段,如此可以保证不同的测试人员具有自己的数据下发规则,互不干扰。
三、基于修改的数据下发规则进行测试
图2是示出了根据本发明另一实施例的辅助测试方法的示意性流程图。
参见图2,在步骤S210,构建模拟服务器。
所构建的模拟服务器提供具有特殊数据下发规则的目标访问接口。此处述及的模拟服务器可以视为与应用客户端对应的另一个“应用服务端”,应用客户端可以与模拟服务器之间进行数据通信,接收从模拟服务器下发的数据文件。
在步骤S220,在运行应用客户端以执行测试用例的过程中,应用客户端向模拟服务器发送第二数据访问请求。
在步骤S230,在模拟服务器提供了与第二数据访问请求对应的目标访问接口的情况下,接收模拟服务器基于特殊数据下发规则下发的数据文件。由于模拟服务器下发的数据文件是基于修改后的数据下发规则下发的。因此,应用客户端在将模拟服务器下发的数据文件作为应用的输入数据时,可以使得应用程序所展示的界面能够构造出测试需求的对象和/或环境。
另外,在模拟服务器未提供与第二数据访问请求对应的目标访问接口的情况下,可以正常向应用服务端发送第二数据访问请求,并接收从应用服务端下发的数据文件。
由此,模拟服务器可以视为代理服务器,其可以根据测试需求,仅针对难以构造或构造起来较为繁琐的构造特殊对象或场景所关联的接口(例如充值接口)进行模拟,获取这类接口的默认数据下发规则,并进行修改得到相应的符合测试需求的特殊数据下发规则。对于这类接口,应用客户端可以从模拟服务器获取数据,对于其他接口数据,应用客户端可以从应用服务端正常获取。如此,实现方式较为灵活,并且构造模拟服务器的代价较小。
作为本发明的一个可选实施例,如上文所述,可以使用python+flask框架搭建一个基于web的规则定制平台,测试人员可以通过关键字搜索默认规则,并对默认数据下发规则进行修改,生成自己的特殊数据下发规则(生成的特殊规则相对于默认规则来说多两个字段,一个是唯一的规则id字段,另一个是规则所有者字段)。然后可以基于Mockpy搭建一个基于代理模式的Mock服务器。此处,Mock服务器可以与规则定制平台连接,基于规则定制平台上制定的特殊数据下发规则,提供具有特殊数据下发规则的供应用客户端访问的访问接口。
如此,在运行自动化测试之前,可以先将移动设备连接到Mock服务器,使用python的requests库向Mock服务器发送一个POST请求,设置需要使用的规则ID和规则所有者,接着使用Appium启动移动设备上的应用,进行自动化测试。自动化测试运行的过程中,设备会请求Mock服务器的相关接口,当匹配到设置的规则ID和规则所有者时,则返回预先设置好的接口数据,当未匹配到设置的规则ID和规则所有者时,则返回公网请求的数据,即从应用服务端正常返回的数据。
Mockpy是一个开源的python Mock服务器框架,它同时支持以上两种方式。与传统的Charles代理服务器相比,它具有可用于编程的接口。与淘宝的Anyproxy相比(一个基于Javascript语言的代理服务器框架),Mockpy使用的python语言易于扩展和阅读,且原生支持多线程。
Mockpy可以产生应用程序测试所需的各种正常和异常数据,因此可以被广泛应用在UI自动化测试的测试场景构造中。此外Mockpy还可以通过设置后台的部分字段值,阻止部分特殊弹窗的开启,也能较大的提高自动化测试运行的稳定性。由此,通过使用Mockpy构建模拟服务器,就可以控制应用程序后台接口请求的数据,可以在很大程度上控制应用程序的输入信息,从而使应用程序的界面输出变得可控。
具体应用例
以目标应用为书籍阅读类应用为例,利用本发明实现的一个示例性测试方案如下。
假设在对该应用进行测试中,需要在书籍阅读类应用的书架首页显示一本名字超长(如名称超过8个字)的书籍,并测试超长的书名是否被截断,并且以省略号表示截断部分,如《千金归来之我的绝世靓女女朋友后传》。利用本发明的测试步骤如下。
1)接口数据下发规则的生成及修改。
具体实现流程可以参见上文相关说明,此处不再赘述。如上文所述,可以在一个规则定制平台上维护所获取的数据下发规则,并且规则定制平台上维护的规则可以由测试人员根据自身需求进行修改。
2)在规则定制平台上搜索名为“书架首页”的接口的默认规则(即数据下发规则),修改书名为《千金归来之我的绝世靓女女朋友后传》,并保存为一个自定义规则,规则ID为1101,规则所有者为我的用户名。
3)测试用例使用python的requests库发送一个POST请求给Mock服务器,设置当前规则ID为1101,规则所有者为我的用户名。
4)使用Appium或其他UI自动化工具启动应用程序,进入书架首页。
5)应用程序向Mock服务器请求首页数据,Mock服务器将请求和设置的规则进行对比,发现匹配书架首页的规则,返回步骤1)中设置的Mock数据,即书名设置为《千金归来之我的绝世靓女女朋友后传》后的书架首页数据。
5)使用Appium等UI测试工具获取到书架首页的书名UI元素,获取元素的文本,使用断言验证界面文本为省略号截断的文本。如《千金归来之我的绝世…》。
至此,结合图1、图2就本发明的辅助测试方法做了详细说明,另外,本发明的辅助测试方法还可以实现为一种辅助测试装置。图3是示出了根据本发明一实施例的辅助测试装置的结构的示意性方框图。其中,辅助测试装置300的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图3所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面仅就辅助测试装置300可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。
参见图3,辅助测试装置300可以包括请求发送单元310、数据接收单元320以及整合单元330。
请求发送单元310用于针对应用服务端提供的至少部分访问接口中的每个访问接口,基于访问接口的接口属性信息向应用服务端发送第一数据访问请求。所述至少部分接口可以为与针对所述目标应用的测试用例的测试需求相关的接口,测试需求可以包括:测试对象需求和/或弹窗设置需求。
数据接收单元320用于接收应用服务端响应于第一数据访问请求下发的数据文件。
整合单元330用于整合访问接口的接口属性信息和与访问接口对应的数据文件,以得到至少部分访问接口中每个访问接口的数据下发规则。
如图3所示,辅助测试装置300还可以可选地包括图中虚线框所示的接口属性信息获取单元340。接口属性信息获取单元340用于获取应用客户端与应用服务端进行数据通信时所访问的接口的接口属性信息,接口属性信息涉及的接口包括至少部分访问接口。
如图3所示,辅助测试装置300还可以可选地包括图中虚线框所示的规则修改单元350,用于根据针对目标应用的测试用例的测试需求,对至少部分访问接口中与测试需求相关的目标访问接口的数据下发规则进行修改,以得到目标访问接口的符合测试需求的特殊数据下发规则。
如图3所示,辅助测试装置300还可以可选地包括图中虚线框所示的构造单元360。
构造单元360用于构建模拟服务器,模拟服务器提供了具有特殊数据下发规则的目标访问接口。在运行应用客户端以执行测试用例的过程中,应用客户端向模拟服务器发送第二数据访问请求,在模拟服务器提供了与第二数据访问请求对应的目标访问接口的情况下,接收模拟服务器基于特殊数据下发规则下发的数据文件。
在模拟服务器未提供与第二数据访问请求对应的目标访问接口的情况下,应用客户端向应用服务端发送第二数据访问请求,并接收从应用服务端下发的数据文件。
图4是示出了根据本发明一实施例的计算设备的结构的示意性方框图。
参见图4,计算设备400可以是台式机、便携式计算机、平板电脑、智能手机、个人数据助理(PDA),或者其他类型的计算机装置,但是不限于任何特定形式。计算设备400可以包括但不限于处理器410和存储器420。
处理器410可以是一个多核的处理器,也可以包含多个子处理器。在一些实施例中,处理器410可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。
存储器420可以包括存储文件形式或其他形式的内容的任何类型的存储设备中的一个或多个,包括磁硬盘驱动器、固态硬驱、半导体存储设备、闪存,或者能够存储程序指令或数字信息的任何其他计算机可读可写存储介质。存储器420上可以存储有可执行代码,在本发明中,当存储器420上的可执行代码被处理器410执行时,可以使处理器410执行图1、图2所示的方法。
上文中已经参考附图详细描述了根据本发明的辅助测试方法、装置及计算设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (12)
1.一种针对目标应用的辅助测试方法,其中,所述目标应用包括应用客户端和应用服务端,该方法包括:
针对所述应用服务端提供的至少部分访问接口中的每个访问接口,基于所述访问接口的接口属性信息向所述应用服务端发送第一数据访问请求;
接收所述应用服务端响应于所述第一数据访问请求下发的数据文件;
整合所述访问接口的接口属性信息和与所述访问接口对应的数据文件,以得到所述至少部分访问接口中每个访问接口的数据下发规则;
根据针对所述目标应用的测试用例的测试需求,对所述至少部分访问接口中与所述测试需求相关的目标访问接口的数据下发规则进行修改,以得到所述目标访问接口的符合所述测试需求的特殊数据下发规则;
构建模拟服务器,所述模拟服务器提供了具有所述特殊数据下发规则的目标访问接口;
在运行所述应用客户端以执行所述测试用例的过程中,所述应用客户端向所述模拟服务器发送第二数据访问请求;
在所述模拟服务器提供了与所述第二数据访问请求对应的目标访问接口的情况下,接收所述模拟服务器基于所述特殊数据下发规则下发的数据文件。
2.根据权利要求1所述的辅助测试方法,还包括:
获取所述应用客户端与所述应用服务端进行数据通信时所访问的接口的接口属性信息。
3.根据权利要求1所述的辅助测试方法,其中,所述接口属性信息包括以下一项或多项:
接口名称;
唯一的接口ID;
接口的URL;
请求类型;以及
与接口相关的Post参数。
4.根据权利要求1所述的辅助测试方法,其中,整合所述访问接口的接口属性信息和与所述访问接口对应的数据文件的步骤包括:
将所述访问接口的接口属性信息和与所述访问接口对应的数据文件进行拼装,以得到所述数据下发规则,其中,所述数据下发规则包括所述接口属性信息和所述数据文件。
5.根据权利要求1所述的辅助测试方法,其中,所述至少部分访问接口为与针对所述目标应用的测试用例的测试需求相关的接口,
所述测试需求包括:测试对象需求和/或弹窗设置需求。
6.根据权利要求1所述的辅助测试方法,还包括:
在所述模拟服务器未提供与所述第二数据访问请求对应的目标访问接口的情况下,向所述应用服务端发送所述第二数据访问请求,并接收从所述应用服务端下发的数据文件。
7.一种针对目标应用的辅助测试装置,其中,所述目标应用包括应用客户端和应用服务端,该装置包括:
请求发送单元,用于针对所述应用服务端提供的至少部分访问接口中的每个访问接口,基于所述访问接口的接口属性信息向所述应用服务端发送第一数据访问请求;
数据接收单元,用于接收所述应用服务端响应于所述第一数据访问请求下发的数据文件;
整合单元,用于整合所述访问接口的接口属性信息和与所述访问接口对应的数据文件,以得到所述至少部分访问接口中每个访问接口的数据下发规则;
规则修改单元,用于根据针对所述目标应用的测试用例的测试需求,对所述至少部分访问接口中与所述测试需求相关的目标访问接口的数据下发规则进行修改,以得到所述目标访问接口的符合所述测试需求的特殊数据下发规则;
构造单元,用于构建模拟服务器,所述模拟服务器提供了具有所述特殊数据下发规则的目标访问接口,
在运行所述应用客户端以执行所述测试用例的过程中,所述应用客户端向所述模拟服务器发送第二数据访问请求,
在所述模拟服务器提供了与所述第二数据访问请求对应的目标访问接口的情况下,接收所述模拟服务器基于所述特殊数据下发规则下发的数据文件。
8.根据权利要求7所述的辅助测试装置,还包括:
接口属性信息获取单元,用于获取所述应用客户端与所述应用服务端进行数据通信时所访问的接口的接口属性信息。
9.根据权利要求7所述的辅助测试装置,其中,所述至少部分接口为与针对所述目标应用的测试用例的测试需求相关的接口,
所述测试需求包括:测试对象需求和/或弹窗设置需求。
10.根据权利要求7所述的辅助测试装置,其中,
在所述模拟服务器未提供与所述第二数据访问请求对应的目标访问接口的情况下,所述应用客户端向所述应用服务端发送所述第二数据访问请求,并接收从所述应用服务端下发的数据文件。
11.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-6中任何一项所述的方法。
12.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710953807.0A CN107729246B (zh) | 2017-10-13 | 2017-10-13 | 针对目标应用的辅助测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710953807.0A CN107729246B (zh) | 2017-10-13 | 2017-10-13 | 针对目标应用的辅助测试方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729246A CN107729246A (zh) | 2018-02-23 |
CN107729246B true CN107729246B (zh) | 2020-12-01 |
Family
ID=61210370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710953807.0A Active CN107729246B (zh) | 2017-10-13 | 2017-10-13 | 针对目标应用的辅助测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729246B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897691B (zh) * | 2018-06-29 | 2022-02-15 | 百度在线网络技术(北京)有限公司 | 基于接口模拟服务的数据处理方法、装置、服务器和介质 |
CN111382056B (zh) * | 2018-12-29 | 2024-02-02 | 北京字节跳动网络技术有限公司 | 一种服务的测试方法、装置,服务器及存储介质 |
CN110806970A (zh) * | 2019-09-18 | 2020-02-18 | 北京你财富计算机科技有限公司 | 一种基于模拟服务端响应的客户端测试方法、装置和电子设备 |
CN112910722B (zh) * | 2019-12-04 | 2022-07-22 | 北京达佳互联信息技术有限公司 | 网络请求测试方法、装置、终端及存储介质 |
CN111090589A (zh) * | 2019-12-19 | 2020-05-01 | 广州品唯软件有限公司 | 软件测试方法、软件测试装置及可读存储介质 |
CN111555935A (zh) * | 2020-04-27 | 2020-08-18 | 北京奇艺世纪科技有限公司 | 数据通信方法、装置、电子设备及存储介质 |
CN111580989B (zh) * | 2020-04-30 | 2023-05-02 | 成都新潮传媒集团有限公司 | 一种文件处理方法及装置 |
CN114448857B (zh) * | 2022-01-29 | 2024-06-18 | 北京字节跳动网络技术有限公司 | Mock服务处理方法、装置、存储介质和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8091072B2 (en) * | 2007-10-18 | 2012-01-03 | Microsoft Corporation | Framework for testing API of a software application |
CN103150238A (zh) * | 2011-12-07 | 2013-06-12 | 阿里巴巴集团控股有限公司 | 一种服务请求处理方法、模拟性能测试方法及装置 |
CN106528432A (zh) * | 2016-12-12 | 2017-03-22 | 北京三快在线科技有限公司 | 测试场景数据的构建方法及装置、埋点测试方法 |
CN106933745A (zh) * | 2017-03-30 | 2017-07-07 | 携程计算机技术(上海)有限公司 | Web接口自动化测试方法和系统 |
CN107231398A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 信息交互方法及装置 |
-
2017
- 2017-10-13 CN CN201710953807.0A patent/CN107729246B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8091072B2 (en) * | 2007-10-18 | 2012-01-03 | Microsoft Corporation | Framework for testing API of a software application |
CN103150238A (zh) * | 2011-12-07 | 2013-06-12 | 阿里巴巴集团控股有限公司 | 一种服务请求处理方法、模拟性能测试方法及装置 |
CN107231398A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 信息交互方法及装置 |
CN106528432A (zh) * | 2016-12-12 | 2017-03-22 | 北京三快在线科技有限公司 | 测试场景数据的构建方法及装置、埋点测试方法 |
CN106933745A (zh) * | 2017-03-30 | 2017-07-07 | 携程计算机技术(上海)有限公司 | Web接口自动化测试方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107729246A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729246B (zh) | 针对目标应用的辅助测试方法、装置、设备及存储介质 | |
CN111538659B (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
CN107479868B (zh) | 一种界面加载方法、装置及设备 | |
CN112486459B (zh) | 活动页面生成方法、装置、计算机设备和可读存储介质 | |
US8984487B2 (en) | Resource tracker | |
US20170220336A1 (en) | System and method for automatic api candidate generation | |
CN116756016A (zh) | 多浏览器测试方法、装置、设备、介质及程序产品 | |
KR20180076020A (ko) | 애플리케이션 테스트 자동화 장치 및 방법 | |
CN111061522A (zh) | 基于后端生成前端卡片组件的方法、装置、设备及存储介质 | |
CN110737900A (zh) | 网页功能测试方法及装置、服务器和计算机可读存储介质 | |
US10169216B2 (en) | Simulating sensors | |
CN112988810B (zh) | 信息查找方法、装置及设备 | |
CN110874322A (zh) | 一种用于应用程序的测试方法及测试服务器 | |
CN110891120B (zh) | 界面内容展示方法、装置及存储介质 | |
CN110750742B (zh) | 页面优化方法、系统、介质和电子设备 | |
CN117149153A (zh) | 业务数据模型的生成方法、装置、计算机设备以及介质 | |
CN114911541A (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
US9477448B2 (en) | Screen-oriented computing program refactoring | |
CN114064010A (zh) | 前端代码生成方法、装置、系统及存储介质 | |
CN112596781A (zh) | 一种业务执行以及业务配置方法及装置 | |
US20150113501A1 (en) | Mobile computing program slicing | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 | |
US12050528B2 (en) | System, method, and computer program for development driven test automation | |
CN115982018B (zh) | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 | |
CN109324966B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200710 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping radio square B tower 13 floor 03 unit self Applicant before: GUANGZHOU ALIBABA LITERATURE INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |