CN113360406B - 应用程序的JSBridge方法的测试方法及装置 - Google Patents

应用程序的JSBridge方法的测试方法及装置 Download PDF

Info

Publication number
CN113360406B
CN113360406B CN202110743754.6A CN202110743754A CN113360406B CN 113360406 B CN113360406 B CN 113360406B CN 202110743754 A CN202110743754 A CN 202110743754A CN 113360406 B CN113360406 B CN 113360406B
Authority
CN
China
Prior art keywords
application program
jsbridge
test case
preset plug
debugging tool
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
Application number
CN202110743754.6A
Other languages
English (en)
Other versions
CN113360406A (zh
Inventor
魏玉洁
刘文华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202110743754.6A priority Critical patent/CN113360406B/zh
Publication of CN113360406A publication Critical patent/CN113360406A/zh
Application granted granted Critical
Publication of CN113360406B publication Critical patent/CN113360406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

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

本申请实施例提供了一种应用程序的JSBridge方法的测试方法,所述方法包括:通过调式工具接收用户触发的测试用例执行指令;通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序;通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。本申请可以实现对应用程序的全面测试。

Description

应用程序的JSBridge方法的测试方法及装置
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种应用程序的JSBridge方法的测试方法及装置。
背景技术
JSBridge方法是Native应用程序(APP)提供给H5页面(前端页面)进行调用,以触发一些指定功能的函数。
现有技术中,JSBridge方法的测试一般都是等待前端页面和客户端(应用程序)都开发完毕后,直接在H5页面内对JSBridge方法基于对应的业务场景对功能进行测试和回归。在整个测试过程中,对当前JSBridge方法的测试处于完全黑盒的状态,需要基于业务场景对该方法进行测试,没有办法脱离业务测试,而业务测试无法覆盖到各种边界情况,会导致问题发现滞后或者遗漏。
发明内容
本申请实施例的目的是提供一种应用程序的JSBridge方法的测试方法及装置、计算机设备及计算机可读存储介质,以解决现有对JSBridge方法的测试需要基于业务场景进行测试,会出现无法覆盖到各种边界情况,导致问题发现滞后或者遗漏的问题。
本申请实施例的一个方面提供了一种应用程序的JSBridge方法的测试方法,所述方法包括:
通过调式工具接收用户触发的测试用例执行指令;
通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法;
通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;
通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;
通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。
可选地,所述通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法包括:
通过所述预设插件根据所述测试用例中的所述JSBridge方法的接口调用所述JSBridge方法。
可选地,所述通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行包括:
通过所述预设插件根据所述测试用例中的断言参数与所述回调结果进行比较,以判断所述JSBridge方法是否正确执行。
可选地,所述测试用例包括多个按照业务类型进行划分的子测试用例,不同的子测试用例对应不同的JSBridge方法,所述通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序包括:
通过所述调式工具根据所述执行指令按照业务类型依次运行多个子测试用例;
通过所述调试工具中的预设插件依次将每一个子测试用例发送给待测试的应用程序。
可选地,所述通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果包括:
通过所述预设插件接收所述应用程序响应调用不同的JSBridge方法后生成的多个回调结果;
所述通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行包括:
通过所述预设插件根据多个子测试用例中的断言参数与各个子测试用例对应的回调结果进行比较,以判断各个JSBridge方法是否正确执行。
可选地,所述方法还包括:
通过所述调式工具根据多个判断结果生成测试报告。
可选地,通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法包括:
通过所述预设插件将所述测试用例中的所述JSBridge方法的方法名发送给所述应用程序,其中,所述应用程序在接收到所述方法名后,执行所述方法名对应的JSBridge方法。
本申请实施例的再一个方面提供了一种应用程序的JSBridge方法的测试装置,包括:
接收模块,用于通过调式工具接收用户触发的测试用例执行指令;
运行模块,用于通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法;
模拟模块,用于通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;
回调模块,用于通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;
断言模块,用于通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。
本申请实施例的再一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的方法的步骤。
本申请实施例的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的方法的步骤。
本申请实施例提供的应用程序的JSBridge方法的测试方法及装置、计算机设备及计算机可读存储介质,通过调式工具接收用户触发的测试用例执行指令;通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法;通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。本申请在对JSBridge方法进行测试时,通过调试工具来模拟H5页面调用JSBridge方法,从而可以模拟各种业务场景下,而无需依赖开发好好的H5页面,进而可以覆盖到各种边界情况,实现对应用程序的全面测试,可以及时发现应用程序中存在的问题,降低开发后的应用程序中存在的风险。
附图说明
图1示意性示出了实现本申请实施例的应用程序的JSBridge方法的测试方法的环境示意图;
图2示意性示出了根据本申请一实施例的应用程序的JSBridge方法的测试方法的流程图;
图3示意性示出了一实施例中通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序的步骤细化流程图;
图4示意性示出了根据本申请实施例的应用程序的JSBridge方法的测试装置的框图;
图5示意性示出了根据本申请实施例的适于实现应用程序的JSBridge方法的测试方法的计算机设备的硬件架构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本申请的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识处理步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
图1示意性示出了根据本申请实施例的应用程序的JSBridge方法的测试方法的应用环境示意图。在示例性的实施例中,该应用环境的系统可包括安装有应用程序的第一终端设备10、以及安装有调试工具的第二终端设备20。其中,第一终端设备10与第二终端设备20形成无线或有线连接。第一终端设备10可以为具有触摸屏幕的手机、iPAD,平板电脑等,具体此处不作限定。第二终端设备20优选为电脑。通过第二终端设备20上安装的调试工具实现对第一终端设备10中安装的应用程序的JSBridge方法进行测试。
参阅图2,其为本申请一实施例的应用程序的JSBridge方法的测试方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。,从图中可以看出,本实施例中所提供的应用程序的JSBridge方法的测试方法包括:
步骤S20、通过调式工具接收用户触发的测试用例执行指令。
具体地,所述调试工具为一个跨平台的调试工具,通过该调试工具可以让用户在电脑桌面上点击操作应用程序(APP)。
所述测试用例用于测试应用程序中的JSBridge方法。
其中,JSBridge是一种JS实现的Bridge,连接着桥两端的Native应用程序和H5页面。它在应用程序内方便地让Native调用JS,JS调用Native,是双向通信的通道。JSBridge主要提供了JS调用Native代码的能力,实现原生功能如H5页面主题色改变。
JSBridge方法是Native应用程序(APP)提供给H5页面(前端页面)进行调用,以触发一些指定功能的函数。
在本实施例中,为了便于自动化测试,可以通过用户在调式工具中触发一个测试用例执行指令,之后,将由该调试工具自动实现对JSBridge方法的测试。
步骤S21,通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法。
具体地,当用户触发执行指令后,调试工具会自动运行测试用例,开始实现对JSBridge方法的测试,而无需人工手段执行测试流程。
其中,所述预设插件是所述调试工具中的一个插件,它可以用于连接应用程序和调试工具进行通信,可直接对JSBridge方法的应用程序接口发起请求,实现对JSBridge方法的调用,并拿到应用程序响应JSBridge方法的调用的回调结果。同时,该预设插件还可以对回调结果进行断言,以及用于管理JSBridge方法的测试用例集等。
在本实施例中,预设插件可以先和应用程序建立通信链路,之后可以通过该通信链路将测试用例发给应用程序,以便应用程序在接收到该测试用例之后可以打开预设的H5页面,并在该H5页面的容器内注册待测试的JSBridge方法,实现对待测试的JSBridge方法的初始化,其中,所述待测试的JSBridge方法由测试用例中包含的JSBridge方法的方法名进行确定,比如,测试用例中包含的JSBridge方法的方法名为:JSBridge A,则应用程序在接收到该测试用例后,会首先自动打开一个预设的H5页面,之后,会在容纳该H5页面的容器内注册JSBridge A。
需要说明的是,所述H5页面为预先设定的测试H5页面。
可以理解的是,为了通过预设插件将所述测试用例发送给待测试的应用程序,测试人员需要先在插件下编写用于测试JSBridge方法的测试用例。当然,测试人员在编写好测试用例后,也可以在该插件中对编写好的测试用例进行维护。
在一示例性的实施方式中,为了实现对应用程序的全面测试,可以在预设插件中预先按照业务类型划分编写多个子测试用例,每一个子测试用例对应一个不同的JSBridge方法,即所述测试用例是一个测试用例集合,包含多个子测试用例,比如所述测试用例按照业务划分包括业务A下的子测试用例1、子测试用例2、子测试用例3,以及包括业务B下的子测试用例a、子测试用例b、子测试用例c。
参照图3,通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序包括:
步骤S30,通过所述调式工具根据所述执行指令按照业务类型依次运行多个子测试用例。
具体地,在存在多个子测试用例时,调试工具可以根据业务类型依次运行子测试用例。具体而言,在第一个子测试用例运行完之后再继续运行下一个子测试用例,在第一种业务类型下的子测试用例运行完之后,再运行第二种业务类型下的子测试用例,其中,具体哪种业务类型下的子测试用例先运行可以根据实际情况进行设定与修改,在本实施例中不作限定。
步骤S31,通过所述调试工具中的预设插件依次将每一个子测试用例发送给待测试的应用程序。
具体地,调试工具在运行每一个子测试用例后,预设插件会将运行的子测试用例发送给待测试的应用程序,比如,依次将子测试用例1、子测试用例2、子测试用例3发送给应用程序,以便应用程序可以依次在打开的H5页面中依次实现对各个子测试用例对应的JSBridge方法的注册。
步骤S22,通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法。
具体地,通过预设插件模拟所述H5页面调用所述JSBridge方法,从而无需预先针对各种场景开发对应的H5页面,可以在应用程序上线之前即实现对应用程序的全面测试,降低app发版后版本覆盖面不够的风险。
在一示例性的实施方式中,通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法包括:
通过所述预设插件根据所述测试用例中的所述JSBridge方法的接口调用所述JSBridge方法。
具体地,应用程序可以暴露各个待测试的JSBridge方法的接口给预设插件,这样,测试人员在编写测试用例时,可以将接口信息添加至测试用例中,当运行测试用例后,即可以根据测试用例中的JSBridge方法的接口来发送调用消息实现对所述JSBridge方法的调用。
在一示例性的实施方式中,通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法还可以包括:
通过所述预设插件将所述测试用例中的所述JSBridge方法的方法名发送给所述应用程序,其中,所述应用程序在接收到所述方法名后,执行所述方法名对应的JSBridge方法。
具体地,测试人员在编写测试用例时,可以在测试用例中添加待测试的JSBridge方法的方法名,当运行测试用例后,预设插件即会将方法名发送给应用程序,应用程序在接收到所述方法名后,即可以根据该方法名执行与该方法名相匹配的JSBridge方法,以实现对JSBridge方法的响应。
步骤S23,通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果。
具体地,应用程序在接收到对所述JSBridge方法的调用后,会对该调用进行响应,执行所述JSBridge方法,并在完成响应完成后生成回调结果以通知预设插件针对所述JSBridge方法的执行状态,即应用程序是否执行成功所述JSBridge方法。
步骤S24,通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。
具体地,预设插件可以通过assert函数对回调结果进行断言,以判断应用程返回的回调结果是否正确。
在一示例性的实施方式中,通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行包括:
通过所述预设插件根据所述测试用例中的断言参数与所述回调结果进行比较,以判断所述JSBridge方法是否正确执行。
具体地,测试人员在编写测试用例时,可以在测试用例中添加断言参数,其中,该断言参数用于判定所述JSBridge方法是否正确执行。这样,在接收到回调结果后,即可以将该断言参数与回调结果进行比较,若该断言参数与回调结果相同,则可以判定所述JSBridge方法被正确执行,若断言参数与回调结果不相同,则可以判定所述JSBridge方法没有被正确执行。
在一示例性的实施方式中,当需要对多个不同的JSBridge方法进行测试时,通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果可以包括:
通过所述预设插件接收所述应用程序响应调用不同的JSBridge方法后生成的多个回调结果。
具体地,应用程序在接收到对不同JSBridge方法的调用后,会对不同的调用都进行响应,执行不同的JSBridge方法,并在完成响应完成后生成多个回调结果以通知预设插件针对不同的JSBridge方法的执行状态,即应用程序是否执行成功各个JSBridge方法。
通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行包括:
通过所述预设插件根据多个子测试用例中的断言参数与各个子测试用例对应的回调结果进行比较,以判断各个JSBridge方法是否正确执行。
具体地,在接收到多个回调结果后,即可以将每一个测试用例中包含的断言参数与对应的回调结果进行比较,若断言参数与回调结果相同,则可以判定JSBridge方法被正确执行,若断言参数与回调结果不相同,则可以判定JSBridge方法没有被正确执行。
在一示例性的实施方式中,所述方法还包括:
通过所述调式工具根据多个判断结果生成测试报告。
具体地,为了便于用于了解针对各个JSBridge方法的测试结果,调式工具可以根据多个判断结果生成测试报告。
在一实施方式中,在生成测试报告后,可以将测试报告发送给用户,以便用户可以及时查看该测试报告。
本申请通过调式工具接收用户触发的测试用例执行指令;通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法;通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。本申请在对JSBridge方法进行测试时,通过调试工具来模拟H5页面调用JSBridge方法,从而可以模拟各种业务场景下,而无需依赖开发好好的H5页面,进而可以覆盖到各种边界情况,实现对应用程序的全面测试,可以及时发现应用程序中存在的问题,降低开发后的应用程序中存在的风险。
参阅图4所示,是本申请应用程序的JSBridge方法的测试装置40一实施例的程序模块图。
本实施例中,所述应用程序的JSBridge方法的测试装置40包括一系列的存储于存储器上的计算机程序指令,当该计算机程序指令被处理器执行时,可以实现本申请各实施例的应用程序的JSBridge方法的测试功能。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,应用程序的JSBridge方法的测试装置40可以被划分为一个或多个模块,具体可以划分的模块如下:
接收模块41,用于通过调式工具接收用户触发的测试用例执行指令;
运行模块42,用于通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法;
模拟模块43,用于通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;
回调模块44,用于通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;
断言模块45,用于通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。
在一示例性的实施方式中,模拟模块43,还用于通过所述预设插件根据所述测试用例中的所述JSBridge方法的接口调用所述JSBridge方法。
在一示例性的实施方式中,断言模块45,还用于通过所述预设插件根据所述测试用例中的断言参数与所述回调结果进行比较,以判断所述JSBridge方法是否正确执行。
在一示例性的实施方式中,所述测试用例包括多个按照业务类型进行划分的子测试用例,不同的子测试用例对应不同的JSBridge方法,运行模块42,还用于通过所述调式工具根据所述执行指令按照业务类型依次运行多个子测试用例;通过所述调试工具中的预设插件依次将每一个子测试用例发送给待测试的应用程序。
在一示例性的实施方式中,回调模块44,还用于通过所述预设插件接收所述应用程序响应调用不同的JSBridge方法后生成的多个回调结果。
断言模块45,还用于通过所述预设插件根据多个子测试用例中的断言参数与各个子测试用例对应的回调结果进行比较,以判断各个JSBridge方法是否正确执行。
在一示例性的实施方式中,应用程序的JSBridge方法的测试装置40还包括生成模块。
所述生成模块,用于通过所述调式工具根据多个判断结果生成测试报告。
在一示例性的实施方式中,模拟模块43,还用于通过所述预设插件将所述测试用例中的所述JSBridge方法的方法名发送给所述应用程序,其中,所述应用程序在接收到所述方法名后,执行所述方法名对应的JSBridge方法。
本申请通过调式工具接收用户触发的测试用例执行指令;通过所述调式工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法;通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。本申请在对JSBridge方法进行测试时,通过调试工具来模拟H5页面调用JSBridge方法,从而可以模拟各种业务场景下,而无需依赖开发好好的H5页面,进而可以覆盖到各种边界情况,实现对应用程序的全面测试,可以及时发现应用程序中存在的问题,降低开发后的应用程序中存在的风险。
图5示意性示出了根据本申请实施例的适于实现应用程序的JSBridge方法的测试方法的计算机设备5的硬件架构示意图。本实施例中,计算机设备5是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图5所示,计算机设备5至少包括但不限于:可通过系统总线相互通信链接存储器120、处理器121、网络接口122。其中:
存储器120至少包括一种类型的计算机可读存储介质,该可读存储介质可以是易失性的,也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备5的内部存储模块,例如该计算机设备5的硬盘或内存。在另一些实施例中,存储器120也可以是计算机设备5的外部存储设备,例如该计算机设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器120还可以既包括计算机设备5的内部存储模块也包括其外部存储设备。本实施例中,存储器120通常用于存储安装于计算机设备5的操作系统和各类应用软件,例如应用程序的JSBridge方法的测试方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器121在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它应用程序的JSBridge方法的测试芯片。该处理器121通常用于控制计算机设备5的总体操作,例如执行与计算机设备5进行数据交互或者通信相关的控制和处理等。本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。
网络接口122可包括无线网络接口或有线网络接口,该网络接口122通常用于在计算机设备5与其它计算机设备之间建立通信链接。例如,网络接口122用于通过网络将计算机设备5与外部终端相连,在计算机设备5与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有部件120~122的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器120中的应用程序的JSBridge方法的测试方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本申请。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的应用程序的JSBridge方法的测试方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的应用程序的JSBridge方法的测试方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种应用程序的JSBridge方法的测试方法,特征在于,所述方法包括:
通过调试工具接收用户触发的测试用例执行指令;
通过所述调试工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法,所述预设插件是所述调试工具中的一个插件,用于连接所述应用程序和所述调试工具进行通信;
通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;
通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;
通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。
2.根据权利要求1所述的应用程序的JSBridge方法的测试方法,其特征在于,通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法包括:
通过所述预设插件根据所述测试用例中的所述JSBridge方法的接口调用所述JSBridge方法。
3.根据权利要求1所述的应用程序的JSBridge方法的测试方法,通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行包括:
通过所述预设插件根据所述测试用例中的断言参数与所述回调结果进行比较,以判断所述JSBridge方法是否正确执行。
4.根据权利要求1所述的应用程序的JSBridge方法的测试方法,所述测试用例包括多个按照业务类型进行划分的子测试用例,不同的子测试用例对应不同的JSBridge方法,通过所述调试工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序包括:
通过所述调试工具根据所述执行指令按照业务类型依次运行多个子测试用例;
通过所述调试工具中的预设插件依次将每一个子测试用例发送给待测试的应用程序。
5.根据权利要求4所述的应用程序的JSBridge方法的测试方法,其特征在于,通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果包括:
通过所述预设插件接收所述应用程序响应调用不同的JSBridge方法后生成的多个回调结果;
通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行包括:
通过所述预设插件根据多个子测试用例中的断言参数与各个子测试用例对应的回调结果进行比较,以判断各个JSBridge方法是否正确执行。
6.根据权利要求5所述的应用程序的JSBridge方法的测试方法,其特征在于,所述方法还包括:
通过所述调试工具根据多个判断结果生成测试报告。
7.根据权利要求1至6任一项所述的应用程序的JSBridge方法的测试方法,其特征在于,通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法包括:
通过所述预设插件将所述测试用例中的所述JSBridge方法的方法名发送给所述应用程序,其中,所述应用程序在接收到所述方法名后,执行所述方法名对应的JSBridge方法。
8.一种应用程序的JSBridge方法的测试装置,其特征在于,包括:
接收模块,用于通过调试工具接收用户触发的测试用例执行指令;
运行模块,用于通过所述调试工具根据所述执行指令运行所述测试用例,并通过所述调试工具中的预设插件将所述测试用例发送给待测试的应用程序,其中,所述应用程序在接收到所述测试用例后打开预设的H5页面,并在所述H5页面的容器内注册待测试的JSBridge方法,所述预设插件是所述调试工具中的一个插件,用于连接所述应用程序和所述调试工具进行通信;
模拟模块,用于通过所述预设插件向所述应用程序模拟所述H5页面调用所述JSBridge方法;
回调模块,用于通过所述预设插件接收所述应用程序响应所述调用所述JSBridge方法后生成的回调结果;
断言模块,用于通过所述预设插件对所述回调结果进行断言,以判断所述JSBridge方法是否正确执行。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1至7任一项所述方法的步骤。
CN202110743754.6A 2021-07-01 2021-07-01 应用程序的JSBridge方法的测试方法及装置 Active CN113360406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110743754.6A CN113360406B (zh) 2021-07-01 2021-07-01 应用程序的JSBridge方法的测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110743754.6A CN113360406B (zh) 2021-07-01 2021-07-01 应用程序的JSBridge方法的测试方法及装置

Publications (2)

Publication Number Publication Date
CN113360406A CN113360406A (zh) 2021-09-07
CN113360406B true CN113360406B (zh) 2022-08-02

Family

ID=77537725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110743754.6A Active CN113360406B (zh) 2021-07-01 2021-07-01 应用程序的JSBridge方法的测试方法及装置

Country Status (1)

Country Link
CN (1) CN113360406B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357323A (zh) * 2015-12-11 2016-02-24 北京京东尚科信息技术有限公司 一种app中html5页面调试方法及装置
CN110399284A (zh) * 2018-04-24 2019-11-01 中移(杭州)信息技术有限公司 一种测试用例编写与执行方法及装置
CN110427318A (zh) * 2019-07-19 2019-11-08 上海易点时空网络有限公司 联调的方法、装置及系统
CN110457218A (zh) * 2019-08-07 2019-11-15 Oppo广东移动通信有限公司 游戏引擎测试方法、装置、存储介质及电子设备
CN110851370A (zh) * 2019-11-20 2020-02-28 北京小米移动软件有限公司 程序测试方法及装置、存储介质
CN111414154A (zh) * 2020-03-31 2020-07-14 中国建设银行股份有限公司 前端开发的方法、装置、电子设备和存储介质
CN111563032A (zh) * 2020-03-26 2020-08-21 中国平安财产保险股份有限公司 App调试方法、装置、计算机设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804082A (zh) * 2018-05-10 2018-11-13 北京酷我科技有限公司 一种插件化JSBridge的实现方法
CN109857403B (zh) * 2018-12-05 2022-04-19 腾讯科技(深圳)有限公司 一种页面更新、页面处理方法及装置
CN111176629A (zh) * 2019-12-24 2020-05-19 中国建设银行股份有限公司 一种应用开发的方法和装置
CN111459802B (zh) * 2020-03-09 2022-04-15 北京邮电大学 一种基于GUI的Android应用程序WebView页面的测试方法、装置及设备
CN112015495B (zh) * 2020-08-28 2022-09-23 深圳赛安特技术服务有限公司 Native和H5之间互相调用的方法、装置、设备及介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357323A (zh) * 2015-12-11 2016-02-24 北京京东尚科信息技术有限公司 一种app中html5页面调试方法及装置
CN110399284A (zh) * 2018-04-24 2019-11-01 中移(杭州)信息技术有限公司 一种测试用例编写与执行方法及装置
CN110427318A (zh) * 2019-07-19 2019-11-08 上海易点时空网络有限公司 联调的方法、装置及系统
CN110457218A (zh) * 2019-08-07 2019-11-15 Oppo广东移动通信有限公司 游戏引擎测试方法、装置、存储介质及电子设备
CN110851370A (zh) * 2019-11-20 2020-02-28 北京小米移动软件有限公司 程序测试方法及装置、存储介质
CN111563032A (zh) * 2020-03-26 2020-08-21 中国平安财产保险股份有限公司 App调试方法、装置、计算机设备及存储介质
CN111414154A (zh) * 2020-03-31 2020-07-14 中国建设银行股份有限公司 前端开发的方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN113360406A (zh) 2021-09-07

Similar Documents

Publication Publication Date Title
CN111651366B (zh) Sdk测试方法、装置、设备及存储介质
CN109302522B (zh) 测试方法、装置以及计算机系统和介质
CN106598835B (zh) 一种应用的测试方法及装置、系统
CN109740222B (zh) 一种针对汽车网联化场景的测试装置和系统
CN112270149B (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
CN109885480B (zh) 一种基于调试桥的自动化界面兼容性测试方法及装置
CN109582556B (zh) 应用程序在移动终端运行情况的测试方法、装置和系统
CN107302476B (zh) 一种测试异步交互系统的自动化测试方法与系统
CN111209193B (zh) 程序的调试方法及装置
CN110196809B (zh) 接口测试方法及装置
CN112765023A (zh) 测试用例生成方法、装置
CN113704110A (zh) 用户界面的自动化测试方法及装置
CN107608873B (zh) 软件测试方法和系统及测试平台
CN110990289B (zh) 一种自动提交bug的方法、装置、电子设备及存储介质
US9117018B2 (en) Method of debugging software and corresponding computer program product
CN105404574B (zh) 一种智能卡与移动终端一致性测试方法及装置
US8762781B2 (en) Method and apparatus useful in manufacturing test case operations
CN110471716A (zh) 在OA系统中非嵌入式使用Office的方法
CN113360406B (zh) 应用程序的JSBridge方法的测试方法及装置
CN111381995A (zh) 用于还原用户操作的方法及装置、计算机
CN113032246A (zh) Ssd固件运行方法、装置、可读存储介质及电子设备
CN112286822A (zh) 基于selenium框架的web自动化测试系统、测试方法和测试装置
CN104679648A (zh) 跨应用的自动化测试方法
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN114978360A (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