CN111813648A - 一种应用于App的自动化测试方法、装置、存储介质及电子设备 - Google Patents

一种应用于App的自动化测试方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111813648A
CN111813648A CN201910477342.5A CN201910477342A CN111813648A CN 111813648 A CN111813648 A CN 111813648A CN 201910477342 A CN201910477342 A CN 201910477342A CN 111813648 A CN111813648 A CN 111813648A
Authority
CN
China
Prior art keywords
business process
business
executing
app
buried point
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
Application number
CN201910477342.5A
Other languages
English (en)
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.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development 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 Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Priority to CN201910477342.5A priority Critical patent/CN111813648A/zh
Publication of CN111813648A publication Critical patent/CN111813648A/zh
Pending legal-status Critical Current

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/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

Abstract

本公开实施例公开了一种应用于App的自动化测试方法、装置、存储介质及电子设备,该测试方法包括:在后端配置业务流程,其中,业务流程的配置信息包括埋点的信息和控制参数;获取业务流程中的埋点与可执行方法的对应关系;提取后端的业务流程,通过执行可执行方法以执行业务流程;收集业务流程的执行结果好。通过本公开实施例,能够实现针对App中业务流程的自动化测试,在测试的过程中能够准确发现在App运行过程中出现问题的业务流程的原因和位置,测试效率高,出错率降低,能够实现长时间运行,便于对错误进行调试和修改。

Description

一种应用于App的自动化测试方法、装置、存储介质及电子 设备
技术领域
本公开涉及互联网领域,特别涉及一种应用于App的自动化测试方法、装置、存储介质及电子设备。
背景技术
互联网业务发展迅速,业务迭代频繁,App改版和发版的节奏越加紧凑。针对每次新开发的版本进行单纯的手工测试需要大量的测试工程师,即使是这样,测试的效率还是不满足需求。相较于单纯的手工测试,自动化测试有效率高,减少出错,长时间运行的特点,能够有效的解决目前App业务高速迭代过程中的测试需求。
现有的针对UI的自动化测试的方案通常是基于模拟用户操作的UI自动化测试,通过有效地模拟用户的行为,收集App运行过程中出现的错误,最终形成测试报告,研发工程师根据测试报告修复出现的问题。
但是,上述基于模拟操作的UI自动化测试,虽然能够模拟真实用户的操作,但是存在两个明显的问题:第一,在测试的过程中无法准确的反映在App运行过程中出现问题的业务流程的原因,例如出现问题的原因有可能是:(1)代码逻辑错误;(2)业务代码本身发生了变化;(3)可能是App从后端拉取的业务参数,修改了按钮的属性,导致这个按钮不可点击或者不可见,这些原因都无法准确确定;第二,UI自动化框架本身查找元素(Element)不准确,查找不到或者查找到触发点击不生效,并且界面逻辑复杂,触发点击是基于一个屏幕位置的点击,虽然元素(Element)存在,但是当前的元素(Element)上面覆盖了其他的元素(Element),这个时候触发的点击在其他的元素(Element)上生效,不符合自动化测试的预期。
通过以上问题进一步探讨其成因,由上述问题1可知,UI自动化测试对于测试过程中出现的错误粒度比较大,对于特定的场景需要一种更细粒度的测试方案,能体现一个业务流程具体的错误的原因,以按钮点击为例子,需要准确地确定按钮是因为后端接口请求错误导致的按钮不显示,导致的业务流程不通过,而不是其他的问题;由上述问题2可知,UI自动化测试业务流程的执行抗干扰性比较差,业务的迭代和业务逻辑的变化,都可能导致业务流程的执行的失败,同一条业务流程及时业务代码不变更,第一次执行成功,第二次有可能会执行失败。
发明内容
有鉴于此,本公开实施例提出了一种应用于App的自动化测试方法、装置、存储介质及电子设备,用以解决现有技术的如下问题:现有技术中在测试的过程中无法准确的反映在App运行过程中出现问题的业务流程。
一方面,本公开实施例提出了一种应用于App的自动化测试方法,其包括:在后端配置业务流程,其中,业务流程的配置信息包括埋点的信息和控制参数;获取业务流程中埋点与可执行方法的对应关系;提取后端的业务流程,通过执行可执行方法以执行业务流程;收集业务流程的执行结果。
在一些实施例中,在后端配置业务流程包括:对业务流程进行步骤的划分;根据步骤确定埋点的信息。
在一些实施例中,获取业务流程中埋点与可执行方法的对应关系包括:在业务代码中进行业务流程的埋点;获取埋点与可执行方法之间的对应列表。
在一些实施例中,提取后端的业务流程,通过执行可执行方法以执行业务流程包括:提取业务流程的列表;通过埋点与可执行方法的对应关系执行业务流程。
在一些实施例中,收集业务流程的执行结果包括:将执行结果通知对应人员。
另一方面,本公开实施例提出了一种应用于App的自动化测试装置,其包括:配置模块,其用于在后端配置业务流程,其中,业务流程的配置信息包括埋点的信息和控制参数;获取模块,其用于获取业务流程中埋点与可执行方法的对应关系;执行模块,其用于提取后端的业务流程,通过执行可执行方法以执行业务流程;收集模块,其用于收集业务流程的执行结果。
在一些实施例中,配置模块包括:划分单元,其用于对业务流程进行步骤的划分;确定单元,其用于根据步骤确定埋点的信息。
在一些实施例中,获取模块包括:埋点单元,其用于在业务代码中进行业务流程的埋点;获取单元,其用于获取埋点与可执行方法之间的对应列表。
在一些实施例中,执行模块包括:提取单元,其用于提取业务流程的列表;执行单元,其用于通过埋点与可执行方法的对应关系执行业务流程。
另一方面,本公开实施例提出了一种存储介质,存储有计算机程序,计算机程序被处理器执行时实现本公开任意实施例提供的方法。
另一方面,本公开实施例提出了一种电子设备,至少包括存储器、处理器,存储器上存储有计算机程序,处理器在执行存储器上的计算机程序时实现本公开任意实施例提供的方法。
通过本公开实施例的技术方案,能够实现针对App中业务流程的自动化测试,在测试的过程中能够准确发现在App运行过程中出现问题的业务流程的原因和位置,测试效率高,出错率降低,能够实现长时间运行,便于对错误进行调试和修改。
附图说明
图1为本公开第一实施例提供的应用于App的自动化测试方法的流程图;
图2为本公开第二实施例提供的应用于App的自动化测试装置的结构示意图;
图3为本公开第四实施例提供的电子设备的结构示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。
本公开的第一实施例提供了一种应用于App的自动化测试方法,该测试方法能够针对App在进行改版的过程中,针对新开发的功能或者业务流程进行自动化测试,尤其针对IOS系统的下的App改版进行自动化测试,以能够准确找到测试过程中App上出现的问题以及对应的原因,该方法的流程如图1所示,包括步骤101至104:
步骤101,在后端配置业务流程,其中,业务流程的配置信息包括埋点的信息和控制参数。
根据用户对App的使用提出新的需求,开发人员需要对现有的App进行改版。为了满足对App进行改版的需要,开发人员需要对现有App中存在的业务逻辑进行调整而提出优化的业务逻辑或者针对用户的新需求设计构建新的业务逻辑,这就需要开发人员针对性地设计出新的业务流程以准备经过测试后增加至现有App的业务逻辑中。当开发人员根据需求设计构建一个经过优化的或者新开发的业务流程并进行自动化测试的时候,首先针对现有的业务流程的业务逻辑进行调整或者重新设计新的业务流程的业务逻辑,并在后端对该业务流程进行配置。例如开发人员在根据需求设计构建“账号登录”这一业务流程的业务逻辑后,需要在后端对“账号登录”这一业务流程进行配置。
在一些实施例中,步骤101中的在后端进行业务流程的配置的过程,包括以下过程:
步骤201,对业务流程进行步骤的划分。
业务流程的实现一般包括多个步骤,业务流程的执行实质是按照顺序执行业务流程中各步骤的过程,因此,在后端进行业务流程的配置过程中,首先要设计业务流程的业务逻辑,也就是将业务流程划分为依次执行的多个步骤,这样,按顺序依次执行多个步骤即相当于执行该业务流程的过程,通过对业务流程进行划分使得能够确定该业务流程的业务逻辑。
步骤202,根据步骤确定埋点的信息。
在通过步骤201对经过优化的或者新开发的业务流程划分出依次执行的多个步骤之后,需要将业务流程中包含的各步骤转换为业务逻辑中的节点或者在业务逻辑中进行埋点操作,这样,例如通过埋点标记业务流程中包含的各步骤,以便于依据埋点执行该业务流程。因此,开发人员需要将业务流程中的多个步骤进行转化为相互对应的多个埋点,并对该多个埋点的信息进行配置,例如,在配置过程中可以针对埋点的名称、控制参数等进行配置,这样,业务流程的配置信息包括埋点信息和控制参数。
下面以“账号登录”的业务流程为例,具体解释如何在后端进行业务流程的配置。根据对App使用的需求,将“账号登录”这一业务流程的操作进行设计,该业务流程包括6个步骤,分别是(1)退出登录;(2)开启登录界面;(3)输入用户的账号;(4)点击下一步;(5)输入用户密码;(6)点击完成。依次执行上述6各步骤即相当于执行了“账号登录”这个业务流程。
在对“账号登录”的业务流程进行了步骤划分之后,对上述6个步骤在后端进行配置,在配置的过程中,需要确定业务流程的埋点信息,具体地,首先确定这6个步骤配置对应的指令名称,例如将(1)退出登录;(2)开启登录界面;(3)输入用户的账号;(4)点击下一步;(5)输入用户密码;(6)点击完成对应地配置的名字分别设置为(1)logout;(2)show_login;(3)keyin_account;(4)click_next;(5)keyin_password;(6)click_finish,这6个步骤将在后续对应业务逻辑中可操作的6个埋点;然后,根据业务逻辑的需要,对其中需要的步骤也就是埋点进行配置参数,例如对keyin_account(对应于输入用户账号步骤)这一指令需要同时配置参数,其中,对输入用户账号这一步骤的配置信息对应的代码结构如下所示:
Figure BDA0002082700410000051
Figure BDA0002082700410000061
步骤102,获取业务流程中的埋点与可执行方法的对应关系。
考虑到执行业务代码中对应的方法的实质就是执行业务流程,因此,通过步骤101确定了业务流程中包含的各步骤,实质就是确定了基于后端的业务流程在前端执行方法操作的所需的各业务流程埋点的信息,埋点是在业务逻辑中或者在业务代码中与后端的业务流程的各步骤相对应。
在本步骤中,为了通过确定业务逻辑中的业务流程埋点,从而能够执行业务流程埋点对应的业务代码中的方法,最终能够执行业务流程,这就需要获取业务流程埋点与业务代码中可执行方法的对应关系,这种对应关系例如可以通过对应列表的形式体现,这样能够通过将业务代码中的各业务流程埋点的位置、顺序等信息与可执行的方法进行对应,从而依据业务流程埋点执行对应的方法。具体地,步骤102可以进一步包括以下步骤:
步骤301,在业务代码中进行业务流程的埋点。
由于对优化的或者新开发的业务流程的自动化测试的目的在于,将优化的或者新开发的业务流程接入到App的业务逻辑中以测试该新开发的业务流程是否能够在App中正确运行以及当出现问题时及时查找到问题所在。因此,在本步骤中,需要实际的在业务代码中进行业务流程埋点,也就是将在App的业务代码中实际埋入埋点,以为对业务流程的测试进行准备,该埋点对应于步骤101中确定的埋点。
AST是指抽象语法树(Abstract Syntax Tree),也被称为AST语法树,是源代码的抽象语法结构的树状表示方式,其中,树上的每个节点都表示源代码中的一种结构。在AST语法树生成的时候,通过自定义插件的方式获得每个节点上的方法的定义,同时通过llvm中的attibute方式给方法的代码中的适当位置增加注解(annotate)。
由于在IOS代码中支持给代码方法增加注解(annotate),因此,可以在业务流程对应的方法的业务代码中通过注解的方式加入通过步骤101中已经确定的各埋点以及配置信息,从而实现在业务代码中进行埋点的操作。该配置信息可以是埋点的信息、配置参数等。
例如,以“退出登录”这一步骤为例,可以通过以下方式在业务代码中针对“退出登录”这一步骤进行业务流程埋点。
-(void)logout__attribute__((annotate(“common_di_logout”))){
}
其中,annotate(XXX)即是通过注解的方式进行埋点,如上所示,相应的common_di_click_personal_center,common_di_input_login_phone,common_di_press_login_next,common_di_input_login_password,ommon_di_press_login这些指令也可以通过注解的方式被绑定到登录流程中的相应代码中,以完成整个业务流程的埋点操作。
步骤302,获取埋点与可执行方法之间的对应列表。
具体地,在本步骤中,通过编写ATS插件的方式以获取业务流程埋点与待执行的方法之间的对应列表。
该步骤通过重写clang插件的方式实现,具体地,通过clang插件重写boolVisitObjCMethodDecl(ObjCMethodDecl*declaration)这个函数,在这个函数定义中把包含注解的方法的埋点名称、类信息和注解中的初始化方法等进行明确,Clang插件中的部分代码如下:
Figure BDA0002082700410000081
Figure BDA0002082700410000091
步骤103,提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程。
在针对优化的或者新开发的业务流程进行测试时,基于步骤101在后端配置业务流程,基于步骤102在业务代码中进行了业务流程的埋点操作并且获取业务流程埋点与方法之间的对应列表,在本步骤中,需要提取后端的业务流程,该业务流程已经通过提取能够在App端得到执行以满足测试的需要。具体包括以下步骤:
步骤401,提取业务流程的列表。
由于开发人员在进行测试过程中可能针对多个经过优化的或者新开发的业务流程进行测试,因此,首先需要在后端提取业务流程的列表,在列表中提供了需要被测试的所有业务流程,这些业务流程都已经在后端被配置完毕,其中,不同业务流程例如可以通过业务流程ID进行区分和排序,不同的业务流程的配置信息中还可以包括对应的开发人员信息。
步骤402,通过所述埋点与可执行方法的对应关系执行业务流程。
由于根据步骤102,已经获取了业务流程埋点和可执行方法的对应关系,并且业务流程是根据该可执行方法包括的步骤确定的业务流程埋点,因此,在业务代码中可执行的方法和业务流程之间通过埋点建立对应关系。基于业务代码中可执行的方法和业务流程之间的对应关系,在执行方法时同时也就针对业务流程进行了执行操作。
下面以图为例,进一步的解释执行业务流程的过程:
开发人员在首页(home页)执行第一步骤即退出登录则执行返回操作,执行第二步骤即点击个人中心则进入手机登录流程;在手机登录流程中,开发人员执行第三步骤即输入手机号,执行第四步骤即电机登录下一步则进入手机账号密码登录流程;开发人员在手机账号密码登录流程中,开发人员执行第五步骤即输入密码,执行第六步骤即点击登录按钮,则返回首页。这样,通过执行步骤101确定的(1)退出登录;(2)开启登录界面;(3)输入用户的账号;(4)点击下一步;(5)输入用户密码;(6)点击完成等6个业务流程埋点即可以在业务代码中执行对应的方法,从而执行了该业务流程以进行测试。
步骤104,收集业务流程的执行结果。
在通过步骤103执行完业务流程之后,自动地收集通过前端App执行的方法也就是各业务流程的执行和测试结果,不但能够获取每次执行业务流程的实际执行情况,针对在业务流程执行过程中出现的问题,能够通过业务流程埋点与方法对应业务代码之间对应关系,迅速地查找到出现问题的位置和出现问题的原因,将执行结果通知对应人员,能够实现自动化查找的效果。例如,在执行方法中发现某个埋点出现问题,可以直接反映在后端的业务流程的配置信息中,以便于开发人员能够快速直接地定位问题。
通过本公开实施例的方法,能够实现针对App中业务流程的自动化测试,在测试的过程中能够准确发现在App运行过程中出现问题的业务流程的原因和位置,测试效率高,出错率降低,能够实现长时间运行,便于对错误进行调试和修改。
本公开的第二实施例提供了一种应用于App的自动化测试装置,该测试装置能够针对App在进行改版的过程中,针对新开发的功能或者业务流程进行自动化测试,尤其针对IOS系统的下的App改版进行自动化测试,以能够准确找到测试过程中App上出现的问题以及对应的原因,该装置的结构如图2所示,其包括配置模块10、获取模块20、执行模块30和收集模块40,具体地:
配置模块10,其用于在后端配置业务流程,其中,业务流程的配置信息包括埋点的信息和控制参数。
根据用户对App的使用提出新的需求,开发人员需要对现有的App进行改版。为了满足对App进行改版的需要,开发人员需要对现有App中存在的业务逻辑进行调整而提出优化的业务逻辑或者针对用户的新需求设计构建新的业务逻辑,这就需要开发人员针对性地设计出新的业务流程以准备经过测试后增加至现有App的业务逻辑中。当开发人员根据需求设计构建一个经过优化的或者新开发的业务流程并进行自动化测试的时候,首先针对现有的业务流程的业务逻辑进行调整或者重新设计新的业务流程的业务逻辑,并在后端对该业务流程进行配置。例如开发人员在根据需求设计构建“账号登录”这一业务流程的业务逻辑后,需要在后端对“账号登录”这一业务流程进行配置。
获取模块20,其用于获取业务流程中的埋点与可执行方法的对应关系。
考虑到执行业务代码中对应的方法的实质就是执行业务流程,因此,通过配置模块10确定了业务流程中包含的各步骤,实质就是确定了基于后端的业务流程在前端执行方法操作的所需的各业务流程埋点的信息,埋点是在业务逻辑中或者在业务代码中与后端的业务流程的各步骤相对应。
为了通过确定业务逻辑中的业务流程埋点,从而能够执行业务流程埋点对应的业务代码中的方法,最终能够执行业务流程,这就需要通过获取模块获取业务流程埋点与业务代码中可执行方法的对应关系,这种对应关系例如可以通过对应列表的形式体现,这样能够通过将业务代码中的各业务流程埋点的位置、顺序等信息与可执行的方法进行对应,从而依据业务流程埋点执行对应的方法。
执行模块30,其用于提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程。
在针对优化的或者新开发的业务流程进行测试时,基于配置模块10在后端配置业务流程,基于获取模块在业务代码中进行了业务流程的埋点操作并且获取业务流程埋点与方法之间的对应列表,通过执行模块30提取并执行后端的业务流程,该业务流程已经通过提取能够在App端得到执行以满足测试的需要。
收集模块40,其用于收集业务流程的执行结果。
在通过执行模块30执行完业务流程之后,自动地收集通过前端App执行的方法也就是各业务流程的执行和测试结果,不但能够获取每次执行业务流程的实际执行情况,针对在业务流程执行过程中出现的问题,能够通过业务流程埋点与方法对应业务代码之间对应关系,迅速地查找到出现问题的位置和出现问题的原因,将执行结果通知对应人员,能够实现自动化查找的效果。例如,在执行方法中发现某个埋点出现问题,可以直接反映在后端的业务流程的配置信息中,以便于开发人员能够快速直接地定位问题。
在一些实施例中,配置模块10包括以下单元:
划分单元,其用于对业务流程进行步骤的划分。业务流程的实现一般包括多个步骤,业务流程的执行实质是按照顺序执行业务流程中各步骤的过程,因此,在后端进行业务流程的配置过程中,首先要设计业务流程的业务逻辑,也就是将业务流程划分为依次执行的多个步骤,这样,按顺序依次执行多个步骤即相当于执行该业务流程的过程,通过对业务流程进行划分使得能够确定该业务流程的业务逻辑。
确定单元,其用于根据步骤确定埋点的信息。
在通过划分单元对经过优化的或者新开发的业务流程划分出依次执行的多个步骤之后,需要将业务流程中包含的各步骤转换为业务逻辑中的节点或者在业务逻辑中进行埋点操作,这样,例如通过埋点标记业务流程中包含的各步骤,以便于依据埋点执行该业务流程。因此,开发人员需要将业务流程中的多个步骤进行转化为相互对应的多个埋点,并对该多个埋点的信息进行配置,例如,在配置过程中可以针对埋点的名称、控制参数等进行配置,这样,业务流程的配置信息包括埋点名称和控制参数。
在一些实施例中,获取模块20包括以下单元:
埋点单元,其用于在业务代码中进行业务流程的埋点。
由于对优化的或者新开发的业务流程的自动化测试的目的在于,将优化的或者新开发的业务流程接入到App的业务逻辑中以测试该新开发的业务流程是否能够在App中正确运行以及当出现问题时及时查找到问题所在。因此,通过埋点单元需要实际的在业务代码中进行业务流程埋点,也就是将在App的业务代码中实际埋入埋点,以为对业务流程的测试进行准备,该埋点对应于通过配置模块10确定的埋点。
AST是指抽象语法树(Abstract Syntax Tree),也被称为AST语法树,是源代码的抽象语法结构的树状表示方式,其中,树上的每个节点都表示源代码中的一种结构。在AST语法树生成的时候,通过自定义插件的方式获得每个节点上的方法的定义,同时通过llvm中的attibute方式给方法的代码中的适当位置增加注解(annotate)。
由于在IOS代码中支持给代码方法增加注解(annotate),因此,可以在业务流程对应的方法的业务代码中通过注解的方式加入通过配置模块10已经确定的各埋点以及配置信息,从而实现在业务代码中进行埋点的操作。该配置信息可以是埋点的名称、配置参数等。
获取单元,其用于获取埋点与可执行方法之间的对应列表。
具体地,获取单元通过编写ATS插件的方式以获取业务流程埋点与待执行的方法之间的对应列表。例如,通过重写clang插件的方式实现,具体地,通过clang插件重写boolVisitObjCMethodDecl(ObjCMethodDecl*declaration)这个函数,在这个函数定义中把包含注解的方法的埋点名称、类信息和注解中的初始化方法等进行明确。
在一些实施例中,执行模块30包括以下单元:
提取单元,其用于提取业务流程列表。由于开发人员在进行测试过程中可能针对多个经过优化的或者新开发的业务流程进行测试,因此,首先需要在后端提取业务流程的列表,在列表中提供了需要被测试的所有业务流程,这些业务流程都已经在后端被配置完毕,其中,不同业务流程例如可以通过业务流程ID进行区分和排序,不同的业务流程的配置信息中还可以包括对应的开发人员信息。
执行单元,其用于通过埋点与可执行方法之间的对应关系,执行业务流程。由于已经获取了业务流程埋点和可执行方法的对应关系,并且业务流程是根据该可执行方法包括的步骤确定的业务流程埋点,因此,在业务代码中可执行的方法和业务流程之间通过埋点建立对应关系。基于业务代码中可执行的方法和业务流程之间的对应关系,在执行方法时同时也就针对业务流程进行了执行操作。
通过本公开实施例的装置,能够实现针对App中业务流程的自动化测试,在测试的过程中能够准确发现在App运行过程中出现问题的业务流程的原因和位置,测试效率高,出错率降低,能够实现长时间运行,便于对错误进行调试和修改。
本公开第三实施例提供了一种存储介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法,包括如下步骤S21至S24:
步骤21,在后端配置业务流程,其中,业务流程的配置信息包括埋点的信息和控制参数;
步骤22,获取业务流程中的埋点与可执行方法的对应关系;
步骤23,提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程;
步骤24,收集业务流程的执行结果。
计算机程序被处理器在执行后端配置业务流程中,还被处理器执行如下步骤:对业务流程进行步骤的划分;根据步骤确定埋点的信息。
计算机程序被处理器执行获取业务流程中埋点与方法的对应关系中,还被处理器执行如下步骤:在业务代码中进行业务流程的埋点;获取埋点与可执行方法之间的对应列表。
计算机程序被处理器执行提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程中,还被处理器执行如下步骤:提取业务流程列表;通过埋点与可执行方法之间的对应关系,执行业务流程。
计算机程序被处理器执行收集业务流程的执行结果中,还被处理器执行如下步骤:将执行结果通知对应人员。
通过本公开实施例的存储介质能够实现针对App中业务流程的自动化测试,在测试的过程中能够准确发现在App运行过程中出现问题的业务流程的原因和位置,测试效率高,出错率降低,能够实现长时间运行,便于对错误进行调试和修改。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例记载的方法步骤。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本公开的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
本公开第四实施例提供了一种电子设备900,其如图3所示,每个该电子设备的结构示意图均可以如图3所示,至少包括存储器910和处理器920,存储器910上存储有计算机程序,处理器920在执行存储器910上的计算机程序时实现本公开任意实施例提供的方法。
示例性的,第一电子设备(服务器)计算机程序步骤如下S31至S34:
步骤31,在后端配置业务流程,其中,业务流程的配置信息包括埋点的信息和控制参数;
步骤32,获取业务流程中的埋点与可执行方法的对应关系;
步骤33,提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程;
步骤34,收集业务流程的执行结果。
处理器在执行存储器上存储的后端配置业务流程的计算机程序之中,具体执行如下计算机程序:对业务流程进行步骤的划分;根据步骤确定埋点的信息。
处理器在执行存储器上存储的获取业务流程中埋点与方法的对应关系的计算机程序之中,具体执行如下计算机程序:在业务代码中进行业务流程的埋点;获取埋点与可执行方法之间的对应列表。
处理器在执行存储器上存储的提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程的计算机程序之中,具体执行如下计算机程序:提取业务流程的列表;通过埋点与可执行方法之间的对应关系,执行业务流程。
处理器在执行存储器上存储的收集业务流程的计算机程序之中,具体执行如下计算机程序:将执行结果通知对应人员。
通过本公开实施例的方法,能够实现自动化测试,在测试的过程中准确发现在App运行过程中出现问题的业务流程的原因,测试效率高,出错率降低,能够实现长时间运行。
此外,尽管已经在本文中描述了示例性实施例,其范围包括任何和所有基于本公开的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施例。权利要求书中的元件将被基于权利要求中采用的语言宽泛地解释,并不限于在本说明书中或本申请的实施期间所描述的示例,其示例将被解释为非排他性的。因此,本说明书和示例旨在仅被认为是示例,真正的范围和精神由以下权利要求以及其等同物的全部范围所指示。
以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或更多方案)可以彼此组合使用。例如本领域普通技术人员在阅读上述描述时可以使用其它实施例。另外,在上述具体实施方式中,各种特征可以被分组在一起以简单化本公开。这不应解释为一种不要求保护的公开的特征对于任一权利要求是必要的意图。相反,本公开的主题可以少于特定的公开的实施例的全部特征。从而,以下权利要求书作为示例或实施例在此并入具体实施方式中,其中每个权利要求独立地作为单独的实施例,并且考虑这些实施例可以以各种组合或排列彼此组合。本公开的范围应参照所附权利要求以及这些权利要求赋权的等同形式的全部范围来确定。
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本领域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围之内。

Claims (11)

1.一种应用于App的自动化测试方法,其特征在于,包括:
在后端配置业务流程,其中,所述业务流程的配置信息包括埋点的信息和控制参数;
获取所述业务流程中所述埋点与可执行方法的对应关系;
提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程;
收集所述业务流程的执行结果。
2.如权利要求1所述的方法,其特征在于,所述在后端配置业务流程包括:
对所述业务流程进行步骤的划分;
根据所述步骤确定所述埋点的信息。
3.如权利要求1所述的方法,其特征在于,所述获取所述业务流程中所述埋点与可执行方法的对应关系包括:
在业务代码中进行业务流程的埋点;
获取所述埋点与所述可执行方法之间的对应列表。
4.如权利要求1所述的方法,其特征在于,所述提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程包括:
提取所述业务流程的列表;
通过所述埋点与所述可执行方法的对应关系执行所述业务流程。
5.如权利要求1所述的方法,其特征在于,所述收集业务流程的执行结果包括:
将所述执行结果通知对应人员。
6.一种应用于App的自动化测试装置,其特征在于,包括:
配置模块,其用于在后端配置业务流程,其中,所述业务流程的配置信息包括埋点的信息和控制参数;
获取模块,其用于获取所述业务流程中所述埋点与可执行方法的对应关系;
执行模块,其用于提取后端的所述业务流程,通过执行所述可执行方法以执行所述业务流程;
收集模块,其用于收集所述业务流程的执行结果。
7.如权利要求6所述的装置,其特征在于,所述配置模块包括:
划分单元,其用于对所述业务流程进行步骤的划分;
确定单元,其用于根据所述步骤确定所述埋点的信息。
8.如权利要求6所述的装置,其特征在于,所述获取模块包括:
埋点单元,其用于在业务代码中进行业务流程的埋点;
获取单元,其用于获取所述埋点与所述可执行方法之间的对应列表。
9.如权利要求6所述的装置,其特征在于,所述执行模块包括:
提取单元,其用于提取所述业务流程的列表;
执行单元,其用于通过所述埋点与可执行方法的对应关系执行所述业务流程。
10.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述方法的步骤。
11.一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现权利要求1至5中任一项所述方法的步骤。
CN201910477342.5A 2019-06-03 2019-06-03 一种应用于App的自动化测试方法、装置、存储介质及电子设备 Pending CN111813648A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910477342.5A CN111813648A (zh) 2019-06-03 2019-06-03 一种应用于App的自动化测试方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910477342.5A CN111813648A (zh) 2019-06-03 2019-06-03 一种应用于App的自动化测试方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN111813648A true CN111813648A (zh) 2020-10-23

Family

ID=72844149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910477342.5A Pending CN111813648A (zh) 2019-06-03 2019-06-03 一种应用于App的自动化测试方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111813648A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760723A (zh) * 2021-01-13 2021-12-07 北京京东乾石科技有限公司 一种业务流程调试方法和装置
CN113836045A (zh) * 2021-11-29 2021-12-24 深圳市明源云链互联网科技有限公司 接口自动化断言的逻辑生成方法、装置及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760723A (zh) * 2021-01-13 2021-12-07 北京京东乾石科技有限公司 一种业务流程调试方法和装置
CN113760723B (zh) * 2021-01-13 2024-04-16 北京京东乾石科技有限公司 一种业务流程调试方法和装置
CN113836045A (zh) * 2021-11-29 2021-12-24 深圳市明源云链互联网科技有限公司 接口自动化断言的逻辑生成方法、装置及存储介质

Similar Documents

Publication Publication Date Title
CN107992409A (zh) 测试用例生成方法、装置、计算机设备和存储介质
US8826240B1 (en) Application validation through object level hierarchy analysis
US20090049438A1 (en) Method for Optimizing Migration of Software Applications to Address Needs
CN104978266B (zh) 一种应用测试方法和装置
Qin et al. Testmig: Migrating gui test cases from ios to android
CN103294475A (zh) 基于图形化业务场景和领域模板的业务自动生成系统和方法
US8745727B2 (en) Graphical user interface tester
DE102021133809A1 (de) Verfahren und vorrichtung zur automatischen detektion von softwarefehlern
US20180357143A1 (en) Testing computing devices
US9311345B2 (en) Template based database analyzer
CN107480036A (zh) iOS移动应用的自动测试方法、装置、存储介质及终端
US9501388B2 (en) Method and system for creating reference data
US20200327043A1 (en) System and a method for automated script generation for application testing
CN111538659B (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN111813648A (zh) 一种应用于App的自动化测试方法、装置、存储介质及电子设备
US11422917B2 (en) Deriving software application dependency trees for white-box testing
CN106557419B (zh) 程序的测试方法及装置
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
JP6723976B2 (ja) テスト実行装置及びプログラム
CN111708712A (zh) 用户行为测试用例的生成方法、流量回放方法及电子设备
CN108228448B (zh) 一种代码跟踪方法及装置
CN116629173A (zh) 网络芯片的验证方法、装置、计算机设备及存储介质
CN112567375A (zh) 形式验证方法、信息识别方法、设备和存储介质
CN113672233B (zh) 一种基于Redfish的服务器带外管理方法、装置及设备
CN112860587B (zh) Ui自动测试方法和装置

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