CN115033481A - 基于浏览器访问的自动化测试代码生成的方法、装置以及计算机设备 - Google Patents
基于浏览器访问的自动化测试代码生成的方法、装置以及计算机设备 Download PDFInfo
- Publication number
- CN115033481A CN115033481A CN202210685754.XA CN202210685754A CN115033481A CN 115033481 A CN115033481 A CN 115033481A CN 202210685754 A CN202210685754 A CN 202210685754A CN 115033481 A CN115033481 A CN 115033481A
- Authority
- CN
- China
- Prior art keywords
- test script
- api
- automatic test
- test
- script
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
一种基于浏览器访问的自动化测试代码生成的方法,包括:记录用户操作行为并生成API数据文件和UI数据文件,所述用户操作行为包括用户在被测浏览器页面进行的所有操作;对API数据文件进行处理以生成API自动化测试脚本;对UI数据文件进行处理以生成UI自动化测试脚本;输入模拟测试用例,调用API自动化测试脚本和UI自动化测试脚本对模拟测试用例进行测试;若API自动化测试脚本和UI自动化测试脚本均测试成功,则根据API自动化测试脚本和UI自动化测试脚本生成自动化测试代码;若测试失败,则调用根据预设规则训练好的TensorFlow模型对API自动化测试脚本或UI自动化测试脚本进行优化,根据优化后的API自动化测试脚本和UI自动化测试脚本生成自动化测试代码。
Description
技术领域
本申请涉及到自动化测试领域,具体而言,涉及到一种基于浏览器访问的自动化测试代码生成的方法以及计算机设备。
背景技术
软件质量的保障离不开测试工作,功能测试又是保障产品质量的主要手段。不论是日常的功能测试还是上线前的回归测试,甚至问题排查的测试流程复现,能否实现高效有用的自动化测试显得尤为重要。现有的UI自动化的测试成本高,对测试人员要求高,需要懂测试框架,会编程语言,维护性差,当UI层发生改变时,可能导致大量自动化脚本失效,需要大量时间进行维护。现有的API自动化测试开发成本同样很高,对测试人员有一定的代码功底要求,且需要留出时间做长期的代码维护。当浏览器页面需要进行UI测试和API测试时,需要分开测试,并且需要测试人员花费大量时间进行代码编写。
发明内容
本申请的主要目的为提供一种基于浏览器访问的自动化测试代码生成的方法以及计算机设备,旨在解决无法方便快捷地进行UI测试和API测试的问题。
本申请公开了一种基于浏览器访问的自动化测试代码生成的方法,包括:
记录用户操作行为并生成API数据文件和UI数据文件,所述用户操作行为包括用户在被测浏览器页面进行的所有操作;
对所述API数据文件进行处理以生成API自动化测试脚本;
对所述UI数据文件进行处理以生成UI自动化测试脚本;
输入模拟测试用例,调用所述API自动化测试脚本和所述UI自动化测试脚本对所述模拟测试用例进行测试;
若所述API自动化测试脚本和所述UI自动化测试脚本均测试成功,则根据所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码;
若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化,根据优化后的所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码。
进一步地,所述对所述API数据文件进行处理以生成API自动化测试脚本的步骤,包括:
加载requests库;
将所述API数据文件转换成json或者yml格式的文件;
抽离所述json或者yml格式的文件中请求报文的请求头,生成接口请求文件,以将待测浏览器页面的接口请求转化为requests库的接口请求;
对所述接口请求文件进行数据依赖的分离,形成初始的API自动化测试脚本;
对初始的API自动化测试脚本进行单元测试,若测试通过,则将初始的API自动化测试脚本作为所述API自动化测试脚本。
进一步地,所述对所述UI数据文件进行处理以生成UI自动化测试脚本的步骤,包括:
加载Selenium组件;
通过所述Selenium组件将UI数据文件生成初始的UI自动化测试脚本;
将初始的UI自动化测试脚本分离成对象库层,逻辑层,业务数据层形成所述UI自动化测试脚本。
进一步地,所述对所述UI数据文件进行处理以生成UI自动化测试脚本的步骤,包括:
加载聚类算法模块到所述UI自动化测试脚本内,以利用聚类算法模块提取被测浏览器页面的重要元素。
进一步地,所述根据集成所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码的步骤之后,包括:
导入allure模块到所述自动化测试代码内,以生成测试报告。
进一步地,所述若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化的步骤之后,包括:
再次输入模拟测试用例,调用优化后的API自动化测试脚本和UI自动化测试脚本对所述模拟测试用例进行测试;
若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则进行手工调整。
进一步地,所述记录用户操作行为并生成API数据文件和UI数据文件步骤之后,包括:
删除或合并所述API数据文件和UI数据文件内的相似数据。
本申请还提供一种基于浏览器访问的自动化测试代码生成的装置,包括:
记录模块,用于记录用户操作行为并生成API数据文件和UI数据文件,所述用户操作行为包括用户在被测浏览器页面进行的所有操作;
API自动化测试脚本生成模块,用于对所述API数据文件进行处理以生成API自动化测试脚本;
UI自动化测试脚本生成模块,用于对所述UI数据文件进行处理以生成UI自动化测试脚本;
测试模块,用于输入模拟测试用例,调用所述API自动化测试脚本和所述UI自动化测试脚本对所述模拟测试用例进行测试;
自动化测试代码生成模块,用于若所述API自动化测试脚本和所述UI自动化测试脚本均测试成功,根据所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码;
优化模块,用于若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
有益效果:
本申请根据API自动化测试脚本和UI自动化测试脚本生成自动化测试代码中,可以同时对被测浏览器页面进行自动化测试。这节省了测试的时间和人力成本,让测试更加简单快捷,API自动化测试脚本和UI自动化测试脚本可以自动生成,不需要测试人员懂得太多的代码知识,降低了测试成本。其次,本申请通过TensorFlow模型可以将API自动化测试脚本和UI自动化测试脚本进行优化,将深度学习应用到API自动化测试和UI自动化测试中,让其更加智能化。
附图说明
图1是本申请一实施例的一种基于浏览器访问的自动化测试代码生成的方法的流程示意图;
图2是本申请一实施例的对所述API数据文件进行处理以生成API自动化测试脚本的流程示意图;
图3是本申请一实施例的一种基于浏览器访问的自动化测试代码生成的方法的流程示意图;
图4是本申请一实施例的一种基于浏览器访问的自动化测试代码生成的装置的结构示意框图;
图5为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,提出本申请一种基于浏览器访问的自动化测试代码生成的方法的一实施例,包括:
S1:记录用户操作行为并生成API数据文件和UI数据文件,所述用户操作行为包括用户在被测浏览器页面进行的所有操作;
S2:对所述API数据文件进行处理以生成API自动化测试脚本;
S3:对所述UI数据文件进行处理以生成UI自动化测试脚本;
S4:输入模拟测试用例,调用所述API自动化测试脚本和所述UI自动化测试脚本对所述模拟测试用例进行测试;
S5:若所述API自动化测试脚本和所述UI自动化测试脚本均测试成功,则根据所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码;
S6:若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化,根据优化后的所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码。
在上述实施例中,如上述步骤S1所述,记录用户操作行为并生成API数据文件和UI数据文件,所述用户操作行为包括用户在被测浏览器页面进行的所有操作;
UI测试是一种测试类型,也称为用户界面测试,在UI层面上被记录下的用户操作行为主要是空间的位置坐标和发生的事件,包括被测浏览器页面的空间布局、控件对象的位置、名称、属性及对控件对象的操作行为。将记录下的内容生成UI数据文件,UI数据文件支持行为复制,顺序调整,删除等操作。
浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。因此在API层面被记录下来的用户操作行为主要是用户进行操作时,客户端与后端服务器交互的数据,包括URL统一资源定位符、http请求报文、接口响应的数据及内容。一般浏览器都提供有抓取数据包的工具,API数据文件使用HAR格式进行储存。
如上述步骤S2所述,对所述API数据文件进行处理以生成API自动化测试脚本;
API测试是对客户端和后台服务之间接口的指针的测试。API测试基本原理是首先根据API数据文件中的数据模拟请求url(资源描述符)和报文形成测试请求,然后模拟客户端发送HTTP请求,接着模拟客户端从服务器接收返回报文,最后验证返回结果是否符合测试用例中的预期结果。对API数据文件进行这一系列处理之后形成API自动化测试脚本。
如上述步骤S3所述,对所述UI数据文件进行处理以生成UI自动化测试脚本;
通过UI测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为。用户在被测浏览器页面进行的操作。UI测试的原理主要通过控件的位置、名称、属性等获取控件对象,并且通过操作控件对象或者坐标来模拟用户的操作。因此要生成API自动化测试脚本需要根据获得的UI数据文件模拟用户进行一系列事件操作得到执行结果,再将执行结果与测试用例中的预期结果进行对比得到测试结果。对UI数据文件进行这一系列处理之后形成UI自动化测试脚本。
如上述步骤S4所述,输入模拟测试用例,调用所述API自动化测试脚本和所述UI自动化测试脚本对所述模拟测试用例进行测试;
这一步骤主要是对API自动化测试脚本和UI自动化测试脚本进行测试,测试生成的这两个自动化测试脚本是否正确。模拟测试用例可以使用步骤S1中记录的API数据文件和UI数据文件,节省时间,不需要测试者本人准备测试用例,增加测试代码生成的自动化程度。将API数据文件输入至API自动化测试脚本中进行测试,将UI数据文件输入至UI自动化测试脚本中进行测试,如果API自动化测试脚本和UI自动化测试脚本对模拟测试用例的测试结果与模拟测试用例中的预期结果不同,则API自动化测试脚本和UI自动化测试脚本出错,需要对其进行优化。多次重复这一步骤,测试API自动化测试脚本和UI自动化测试脚本的正确率和完整度。
如上述步骤S5所述,若所述API自动化测试脚本和所述UI自动化测试脚本均测试成功,则根据所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码;
如果API自动化测试脚本和UI自动化测试脚本对模拟测试用例的测试结果与模拟测试用例中的预期结果一致,则说明API自动化测试脚本和UI自动化测试脚本没有问题,可以再多次进行测试,如果多次的测试都没有问题,则根据API自动化测试脚本和UI自动化测试脚本生成自动化测试代码,能够同时对UI层面和API层面进行测试。在使用自动化测试代码进行测试时,还可以对比API自动化测试脚本和UI自动化测试脚本的测试脚本,发现在API层或者UI层的变化。
如上述步骤S6所述,若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化,根据优化后的所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码。
如果API自动化测试脚本和UI自动化测试脚本对模拟测试用例的测试结果与模拟测试用例中的预期结果不一致,说明API自动化测试脚本或所述UI自动化测试脚本内存在问题,需要进行改进,为保证测试代码生成的自动化程度,API自动化测试脚本或所述UI自动化测试脚本可以通过训练好的TensorFlow模型进行修正。
TensorFlow是一个端到端开源机器学习平台。它拥有一个全面而灵活的生态系统,其中包含各种工具、库和社区资源,可助力研究人员推动先进机器学习技术的发展,并使开发者能够轻松地构建和部署由机器学习提供支持的应用;TensorFlow提供多个抽象级别,因此可以根据自己的需求选择合适的级别。也可以使用高阶KerasAPI构建和训练模型,高阶KerasAPI能够轻松地开始使用TensorFlow和机器学习。先将API自动化测试脚本和UI自动化测试脚本过往运行故障的数据和对应的解决方案输入到TensorFlow模型中进行学习训练,然后得到训练好的TensorFlow模型。将出错的API自动化测试脚本或UI自动化测试脚本输入训练好的TensorFlow模型,TensorFlow模型能够根据过往的运行障碍数据判断输入的自动化测试脚本出现故障的类型,然后根据对应的解决方案对其进行优化。
参照图2,在一实施例中,所述对所述API数据文件进行处理以生成API自动化测试脚本的步骤S2,包括:
S201:加载requests库;
S202:将所述API数据文件转换成json或者yml格式的文件;
S203:抽离所述json或者yml格式的文件中请求报文的请求头,生成接口请求文件,以将待测浏览器页面的接口请求转化为requests库的接口请求;
S204:对所述接口请求文件进行数据依赖的分离,形成初始的API自动化测试脚本;
S205:对初始的API自动化测试脚本进行单元测试,若测试通过,则将初始的API自动化测试脚本作为所述API自动化测试脚本。
在上述实施例中,如步骤S201所述,加载requests库;
Requests库是一个Python的第三方库,可以模拟人类访问服务器自动提交网络请求。浏览器使用HTTP协议进行请求-响应,HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。Requests库设置有相应的方法构造和上述请求方法类似的请求报文,例如使用requests.get函数,会构造一个向服务器请求资源的request对象,然后返回一个包含服务器资源的response对象。因此使用Requests库模拟客户端向服务器发送请求以进行接口测试。
如上述步骤S202所述,将所述API数据文件转换成json或者yml格式的文件;
在步骤S1中记录的API数据文件以HAR的格式储存,现通过har2case工具将以HAR的格式储存API数据文件转化为json或者yml格式的文件。
如上述步骤S203所述,抽离所述json或者yml格式的文件中请求报文的请求头,生成接口请求文件,以将待测浏览器页面的接口请求转化为requests库的接口请求;
一个http请求报文由请求行、请求头、空行、请求正文四部分组成;请求头由key/value键值对组成,key和value之间用冒号":"分隔,请求头部通知服务器有关于client端的请求信息。由于现通过requests库模拟客户端向服务器发送接口请求,不需要请求头,因此需要将请求头从请求报文中抽离。以将API数据文件转化为调用requests库的接口请求。
如上述步骤S204所述,对所述接口请求文件进行数据依赖的分离,形成初始的API自动化测试脚本;
待测浏览器页面中可能会有很多条测试用例,如果数据与代码存在绑定关系,很明显会有很多弊端,例如查询、更改测试数据等,这意味着代码和测试数据将会一起进行维护,维护成本会随着时间以及数量不断的增加,且有互相依赖性。因此需要把数据与代码区分开来,分开的这个过程和结果就是数据分离,进行单独性的管理。如果测试数据需要进行修改或添加,那只需要维护测试数据即可。
如上述步骤S204所述,对初始的API自动化测试脚本进行单元测试,若测试通过,则将初始的API自动化测试脚本作为所述API自动化测试脚本。
这一步骤主要是为了对API自动化测试脚本进行测试,测试其是否存在问题。可以输入API数据文件到API自动化测试脚本进行测试,将API数据文件中的预期结果与API自动化测试脚本的运行结果进行比较,如果不一致,则API自动化测试脚本出现错误。
在一实施例中,所述对所述UI数据文件进行处理以生成UI自动化测试脚本的步骤S3,包括:
S301:加载Selenium组件;
S302:通过所述Selenium组件将UI数据文件生成初始的UI自动化测试脚本;
S303:将初始的UI自动化测试脚本分离成对象库层,逻辑层,业务数据层形成所述UI自动化测试脚本。
在上述实施例中,如上述步骤S301所述,加载Selenium组件;
Selenium是一个用于Web应用程序测试的工具,支持多平台、多浏览器、多语言实现自动化测试,Selenium是一个开源和可移植的Web测试框架。其中Selenium IDE为测试提供了回放和录制功能,而无需学习测试脚本语言。Selenium组件可帮助测试人员记录他们的操作并将其导出为可重复使用的脚本,并具有易于理解且易于使用的界面。
如上述步骤S302所述,通过所述Selenium组件将UI数据文件生成初始的UI自动化测试脚本;
利用Selenium将UI数据文件生成初始的UI自动化测试脚本。
如上述步骤S303所述,将初始的UI自动化测试脚本分离成对象库层,逻辑层,业务数据层形成所述UI自动化测试脚本;
将UI自动化测试脚本分离是为了满足Page Object分层模式。Page Object分层模式是一种测试设计模式,主要是将每一个页面设计为一个类,其中包含页面中需要测试的元素(按钮,输入框,标题等),页面对象和用例进行分离,这样在写测试脚本时,可以通过调用页面类来获取页面元素。当页面某个元素id或者位置变化时,这时不用更改测试脚本,只需改下对应的页面类就可以了。将UI自动化测试脚本分离成对象库层,逻辑层,业务数据层,即是将公共方法、逻辑操作(元素定位、操作步骤)、测试用例(测试业务)、测试数据和测试驱动(执行测试用例)相互分离,这大大提高了测试脚本的复用性和可维护性。
在一实施例中,所述对所述UI数据文件进行处理以生成UI自动化测试脚本的步骤S3,包括:
S311:加载聚类算法模块到所述UI自动化测试脚本内,以利用聚类算法模块提取被测浏览器页面的重要元素。
在上述实施例中,如上述步骤S311所述,加载聚类算法模块到所述UI自动化测试脚本内,以利用聚类算法模块提取被测浏览器页面的重要元素,缩短匹配时间。
现有的图像识别算法用于UI页面自动化测试时,由于被测图像背景复杂会导致UI自动化测试效率低下以及测试结果不准确。步骤S311利用聚类算法将图像中的复杂背景弱化或者去掉,只将页面中的重要元素提取出来,降低了匹配时时间成本并且提高了测试准确率,提高了UI自动化测试中的图像识别效率和准确率。利用聚类算法模块对UI自动化测试中的图像分割成超像素;再构建普通超图模型;其次通过将权重值分配给普通超图模型中的顶点和超边构建加权超图模型;然后通过随机游走算法对图像中超像素的重要性进行排序,将超像素级显著性图形成输出的像素级显著性图。图像中每个区域的显著性值代表了该区域成为显著性物体的概率,显著性值越大,成为显著性区域的可能性越大,在形成的显著图中越被高亮显示。对形成的显著图进行比对会降低匹配时间,提高图像识别效率和准确率。
在一实施例中,所述根据集成所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码的步骤S5之后,包括:
S501:导入allure模块到所述自动化测试代码内,以生成测试报告。
在上述实施例中,使用生成的自动化测试代码进行测试时,需要一个报告体现测试结果。Allure是一个独立的报告插件,支持Python、Java、PHP、C等语言,能为API自动化测试和UI提供详尽的测试报告,可以展示测试执行占比,包括成功数、失败数、成功占比;也可以展示历史执行情况,提供不同轮次自动化执行情况;针对失败的用例,展示对应API或UI层面调用失败的原因,并在API层失败的用例中,能查看到对应UI调用的前n步操作记录。
在一实施例中,所述若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化的步骤S6之后,包括:
S601:再次输入模拟测试用例,调用优化后的API自动化测试脚本和UI自动化测试脚本对所述模拟测试用例进行测试;
S602:若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则进行手工调整。
在上述实施例中,如上述步骤S601所述,再次输入模拟测试用例,调用优化后的API自动化测试脚本和UI自动化测试脚本对所述模拟测试用例进行测试;
在对API自动化测试脚本和UI自动化测试脚本进行优化之后,还需要对优化后的API自动化测试脚本和UI自动化测试脚本进行测试,检测一下它们的可靠性。因此利用模拟测试用例再次进行测试。
如上述步骤S602所述,若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则进行手工调整;
如果通过TensorFlow模型进行优化后的API自动化测试脚本和UI自动化测试脚本仍出现错误,则需要测试人员进行手动调整,这为测试人员提供了多种操作,避免出现API自动化测试脚本和UI自动化测试脚本一致出错,却无法调整的情况。
在一实施例中,所述记录用户操作行为并生成API数据文件和UI数据文件步骤S1之后,包括:
S101:删除或合并所述API数据文件和UI数据文件内的相似数据。
在上述实施例中,基于聚类算法,对于录制的相似的API数据文件和UI数据文件数据,提供删除或合并操作,避免生成过多冗余代码导致测试失败,占用存储空间等问题。
参照图4,本申请还提供了一种基于浏览器访问的自动化测试代码生成的装置,包括:
记录模块10,用于记录用户操作行为并生成API数据文件和UI数据文件,所述用户操作行为包括用户在被测浏览器页面进行的所有操作;
API自动化测试脚本生成模块20,用于对所述API数据文件进行处理以生成API自动化测试脚本;
UI自动化测试脚本生成模块30,用于对所述UI数据文件进行处理以生成UI自动化测试脚本;
测试模块40,用于输入模拟测试用例,调用所述API自动化测试脚本和所述UI自动化测试脚本对所述模拟测试用例进行测试;
自动化测试代码生成模块50,用于若所述API自动化测试脚本和所述UI自动化测试脚本均测试成功,根据所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码;
优化模块60,用于若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化。
参照图5,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各种API层数据、UI层数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现上述任一实施例所述的基于浏览器访问的自动化测试代码生成的方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一实施例所述的基于浏览器访问的自动化测试代码生成的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于浏览器访问的自动化测试代码生成的方法,其特征在于,包括:
记录用户操作行为并生成API数据文件和UI数据文件,所述用户操作行为包括用户在被测浏览器页面进行的所有操作;
对所述API数据文件进行处理以生成API自动化测试脚本;
对所述UI数据文件进行处理以生成UI自动化测试脚本;
输入模拟测试用例,调用所述API自动化测试脚本和所述UI自动化测试脚本对所述模拟测试用例进行测试;
若所述API自动化测试脚本和所述UI自动化测试脚本均测试成功,则根据所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码;
若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化,根据优化后的所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码。
2.根据权利要求1所述的基于浏览器访问的自动化测试代码生成的方法,其特征在于,所述对所述API数据文件进行处理以生成API自动化测试脚本的步骤,包括:
加载requests库;
将所述API数据文件转换成json或者yml格式的文件;
抽离所述json或者yml格式的文件中请求报文的请求头,生成接口请求文件,以将待测浏览器页面的接口请求转化为requests库的接口请求;
对所述接口请求文件进行数据依赖的分离,形成初始的API自动化测试脚本;
对初始的API自动化测试脚本进行单元测试,若测试通过,则将初始的API自动化测试脚本作为所述API自动化测试脚本。
3.根据权利要求1所述的基于浏览器访问的自动化测试代码生成的方法,其特征在于,所述对所述UI数据文件进行处理以生成UI自动化测试脚本的步骤,包括:
加载Selenium组件;
通过所述Selenium组件将UI数据文件生成初始的UI自动化测试脚本;
将初始的UI自动化测试脚本分离成对象库层、逻辑层、业务数据层形成所述UI自动化测试脚本。
4.根据权利要求1所述的基于浏览器访问的自动化测试代码生成的方法,其特征在于,所述对所述UI数据文件进行处理以生成UI自动化测试脚本的步骤,包括:
加载聚类算法模块到所述UI自动化测试脚本内,以利用聚类算法模块提取被测浏览器页面的重要元素。
5.根据权利要求1所述的基于浏览器访问的自动化测试代码生成的方法,其特征在于,所述根据集成所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码的步骤之后,包括:
导入allure模块到所述自动化测试代码内,以生成测试报告。
6.根据权利要求1所述的基于浏览器访问的自动化测试代码生成的方法,其特征在于,所述若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化的步骤之后,包括:
再次输入模拟测试用例,调用优化后的API自动化测试脚本和UI自动化测试脚本对所述模拟测试用例进行测试;
若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则进行手工调整。
7.根据权利要求1所述的基于浏览器访问的自动化测试代码生成的方法,其特征在于,所述记录用户操作行为并生成API数据文件和UI数据文件步骤之后,包括:
删除或合并所述API数据文件和UI数据文件内的相似数据。
8.一种基于浏览器访问的自动化测试代码生成的装置,其特征在于,包括:
记录模块,用于记录用户操作行为并生成API数据文件和UI数据文件,所述用户操作行为包括用户在被测浏览器页面进行的所有操作;
API自动化测试脚本生成模块,用于对所述API数据文件进行处理以生成API自动化测试脚本;
UI自动化测试脚本生成模块,用于对所述UI数据文件进行处理以生成UI自动化测试脚本;
测试模块,用于输入模拟测试用例,调用所述API自动化测试脚本和所述UI自动化测试脚本对所述模拟测试用例进行测试;
自动化测试代码生成模块,用于若所述API自动化测试脚本和所述UI自动化测试脚本均测试成功,根据所述API自动化测试脚本和所述UI自动化测试脚本生成自动化测试代码;
优化模块,用于若所述API自动化测试脚本或所述UI自动化测试脚本测试失败,则调用根据预设规则训练好的TensorFlow模型对所述API自动化测试脚本或所述UI自动化测试脚本进行优化。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210685754.XA CN115033481A (zh) | 2022-06-16 | 2022-06-16 | 基于浏览器访问的自动化测试代码生成的方法、装置以及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210685754.XA CN115033481A (zh) | 2022-06-16 | 2022-06-16 | 基于浏览器访问的自动化测试代码生成的方法、装置以及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115033481A true CN115033481A (zh) | 2022-09-09 |
Family
ID=83125306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210685754.XA Pending CN115033481A (zh) | 2022-06-16 | 2022-06-16 | 基于浏览器访问的自动化测试代码生成的方法、装置以及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033481A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539793A (zh) * | 2024-01-05 | 2024-02-09 | 畅捷通信息技术股份有限公司 | 一种浏览器ui自动测试的方法、装置及存储介质 |
-
2022
- 2022-06-16 CN CN202210685754.XA patent/CN115033481A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539793A (zh) * | 2024-01-05 | 2024-02-09 | 畅捷通信息技术股份有限公司 | 一种浏览器ui自动测试的方法、装置及存储介质 |
CN117539793B (zh) * | 2024-01-05 | 2024-03-26 | 畅捷通信息技术股份有限公司 | 一种浏览器ui自动测试的方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10108535B2 (en) | Web application test script generation to test software functionality | |
CN111061526B (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
US8745641B1 (en) | Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface | |
CN109902016B (zh) | 一种Web的测试方法及测试平台 | |
US20190324890A1 (en) | System and Method for Testing Electronic Visual User Interface Outputs | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
CN111984228B (zh) | 一种接口文档的处理方法、装置、计算机设备和存储介质 | |
CN110825619A (zh) | 接口测试用例自动生成方法、装置及存储介质 | |
CN112052172B (zh) | 第三方通道的快速测试方法、装置和电子设备 | |
CN110908895A (zh) | 页面自动化测试方法、装置、计算机设备及存储介质 | |
CN112363953B (zh) | 基于爬虫技术和规则引擎的接口测试用例生成方法及系统 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN110362479B (zh) | 系统升级测试方法和系统 | |
CN112540924A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
WO2021196674A1 (zh) | 系统代码的测试方法、装置、计算机设备和存储介质 | |
CN111966580A (zh) | 基于人工智能的自动化测试方法、装置、设备和存储介质 | |
CN111667231B (zh) | 自动化报税方法、装置、系统、计算机设备和存储介质 | |
CN112597016A (zh) | 自动化测试脚本的录制方法、装置、设备及存储介质 | |
CN115033481A (zh) | 基于浏览器访问的自动化测试代码生成的方法、装置以及计算机设备 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN111078529B (zh) | 客户端写入模块测试方法、装置、电子设备 | |
CN116561003A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
CN115514677A (zh) | 服务器拨测方法及系统 | |
CN113886262A (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 |