实现webdriverjson协议UI自动化的方法、装置及设备与流程

文档序号:22757073发布日期:2020-10-31 09:54阅读:157来源:国知局
实现webdriver json协议UI自动化的方法、装置及设备与流程

本发明属于ui自动化技术领域,具体涉及一种实现webdriverjson协议ui自动化的方法、装置及设备。



背景技术:

随着软件开发的敏捷模式和快速的迭代,为了维护项目的高可用性,自动化已经深入到项目中。每次迭代都可能会有很多需要回归的用例,所以自动化已经成为了软件项目中必不可少的一部分。

目前实现ui自动化的高维护性和参与性是一个难题,很多公司使用纯代码自己写框架的方式。也有公司通过测试中台去搭建一个网页,让测试人员可以通过可视化的界面去输入关键字等等,从而调用底层写好代码。

但是,自己搭建的代码框架,虽然代码有了灵活性和维护性,但是却需要具有较强编程能力的人员来进行操作,例如,很多公司会派遣有代码基础的人去维护底层框架,让熟悉业务的测试人员去通过一些封装好的关键字或者excel,或者某种模板去书写对应的用例,参与性不高,并且这些封装都五花八门,灵活性和参与性无法同时兼顾。而如果是通过搭建网页提供测试中台页面的方式,需要比较大的成本,且需要测试人员去熟悉很多定制化的关键字和使用方法。这些方式也许每个公司都不同,所学的内容无法跨公司或者平台使用。

因此,如何提升ui自动化的便捷性,成为现有技术中亟待解决的问题。



技术实现要素:

为了至少解决现有技术存在的上述问题,本发明提供了一种实现webdriverjson协议ui自动化的方法、装置及设备,以实现更加便捷的ui自动化。

本发明提供的技术方案如下:

一方面,一种实现webdriverjson协议ui自动化的方法,包括:

基于webdriverjson协议,封装http请求;

基于jmeter,对所述webdriverjson协议进行封装,获取目标jmeter;

基于所述目标jmeter的界面,实现ui自动化。

可选的,所述基于webdriverjson协议,封装http请求,包括:

基于所述webdriverjson协议的底层基础的协议规范,封装http请求。

可选的,所述基于所述目标jmeter的界面,实现ui自动化,包括:

根据所述目标jmeter向seleniumremoteserver发送json,从而实现ui自动化。

可选的,所述基于所述webdriverjson协议的底层基础的协议规范,封装http请求,包括:

启动远端服务器;

基于所述远端服务器,获取所述webdriverjson协议的底层基础的协议规范;

根据所述webdriverjson协议的底层基础的协议规范,封装http请求。

可选的,还包括:

基于所述目标jmeter,获取目标插件。

又一方面,一种实现webdriverjson协议ui自动化的装置,包括:封装模块和运行模块;

所述封装模块,用于基于webdriverjson协议,封装http请求;基于jmeter,对所述webdriverjson协议进行封装,获取目标jmeter;

所述运行模块,用于基于所述目标jmeter的界面,实现ui自动化。

可选的,所述封装模块,用于:基于所述webdriverjson协议的底层基础的协议规范,封装http请求。

可选的,所述运行模块,用于:根据所述目标jmeter向seleniumremoteserver发送json,从而实现ui自动化。

可选的,所述封装模块,用于:启动远端服务器;基于所述远端服务器,获取所述webdriverjson协议的底层基础的协议规范;根据所述webdriverjson协议的底层基础的协议规范,封装http请求。

又一方面,一种实现webdriverjson协议ui自动化的设备,包括:处理器,以及与所述处理器相连接的存储器;

所述存储器用于存储计算机程序,所述计算机程序至少用于执行上述任一项所述的实现webdriverjson协议ui自动化的方法;

所述处理器用于调用并执行所述存储器中的所述计算机程序。

本发明的有益效果为:

本发明实施例提供的实现webdriverjson协议ui自动化的方法、装置及设备,使用jmeter进行ui自动化封装,使得ui自动化的推广和参与性提高,降低测试人员在编写ui自动化脚本的门槛。测试人员在使用测试工具jmeter时可以从接口脚本,拓展到ui脚本。并通过可视化界面,丰富的现有方法,不需要或者少量编写代码的基础上完成ui自动化用例的编写,提高ui自动化的参与性和高效性

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种实现webdriverjson协议ui自动化的方法流程示意图;

图2为本发明实施例提供的一种实现webdriverjson协议ui自动化的装置结构示意图;

图3为本发明实施例提供的一种实现webdriverjson协议ui自动化的设备结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

为了至少解决本发明中提出的技术问题,本发明实施例提供一种实现webdriverjson协议ui自动化的方法。

图1为本发明实施例提供的一种实现webdriverjson协议ui自动化的方法流程示意图,请参阅图1,本发明实施例提供的方法,可以包括以下步骤:

s11、基于webdriverjson协议,封装http请求。

s12、基于jmeter,对webdriverjson协议进行封装,获取目标jmeter;

s13、基于目标jmeter的界面,实现ui自动化。

ui即userinterface(用户界面)的简称,泛指用户的操作界面,包含移动app,网页,智能穿戴设备等。jmeter为现有测试工具。

可选的,基于目标jmeter的界面,实现ui自动化,包括:根据目标jmeter向seleniumremoteserver发送json,从而实现ui自动化。

在本发明实施例中,将webdriverjsonprotocol(webdriverjson协议)和jmeter进行结合,从而使用jmeter向seleniumremoteserver发送json来实现ui自动化。jmeter作为测试领域中使用广泛的工具本身已经封装了很多实用的方法可以直接方便的使用,再加上封装webdriverjsonprotocol来进行ui自动化,这样测试人员入门会非常的迅速且高效的完成自动化脚本的编写。

可选的,基于webdriverjson协议,封装http请求,包括:基于webdriverjson协议的底层基础的协议规范,封装http请求。

例如,selenium的本质其实是webdriverjsonprotocol(https://www.w3.org/tr/webdriver/),其实是一个http请求,通过这个请求来进行与浏览器交互。在本实施例中,基于webdriverjson协议,将http请求进行封装。

可选的,基于webdriverjson协议的底层基础的协议规范,封装http请求,包括:启动远端服务器;基于远端服务器,获取webdriverjson协议的底层基础的协议规范;根据webdriverjson协议的底层基础的协议规范,封装http请求。

例如,本实施例提供一具体示例:

启动remoteserver(远端服务器),其启动网址可以为:java-dwebdriver.chrome.driver="chromedriver.exe"-jarselenium-server-standalone-2.xx.0.jar。

打开连接,本实施例中,可以打开底层连接,即底层基础的协议规范,例如:http://localhost:4444/wd/hub/static/resource/hub.html。

创建session:posthttp://127.0.0.1:4444/wd/hub/session。其中,session是一种记录客户状态的机制,session保存在服务器。

打开百度,发送

posthttp://localhost:4444/wd/hub/session/85a32b0f-e617-449a-bcea-8c84ffa2c5f4/url。

{

"url":"http://www.baidu.com"

}

findelementbyid:

发送

posthttp://localhost:4444/wd/hub/session/85a32b0f-e617-449a-bcea-8c84ffa2c5f4/element。

{

"using":"id",

"value":"kw"

}

在本发明实施例中,所有的seleniumapi本质都是通过向seleniumserver发送http请求来进行交互。只是seleniumapi在此基础上封装了一层形成了自己的api,例如

webdriver.get(),webdriver.findelementbyid(),sendkeys()等等

可选的,还包括:基于目标jmeter,获取目标插件。

具体的,jmeter拥有非常好的封装功能,可以在jmeter中进行对所有webdriverjsonprotocol(https://www.w3.org/tr/webdriver/)进行封装,可以实现jmeter提供的abstractfunction抽象类封装成扩展函数,或者实现抽象类abstractjavasamplerclient集成在javasampler中,甚至abstractsamplergui形成插件等等,在形成插件后,便于跨公司使用。

本实施例中,封装后的关键字或者方法等可以直接和jmeter中现有的功能进行结合。例如jmeter中拥有非常方便的响应判断,响应截取,参数化,数据库连接等功能并且普通测试人员都非常的熟悉。再结合jmeter封装webdriverjsonprotocol后的关键字或者方法可以进行浏览器的驱动,这样测试人员可以快速方便的入门,甚至可以无需代码的编写,完成ui自动化的实现。jmeter本身还拥有并发功能,可以方便的进行多线程的测试。

本发明实施例提供的实现webdriverjson协议ui自动化的方法,提供了一种无须搭建中台页面,可以使用测试人员比较熟悉的jmeter工具实现seleniumui自动化,并可维护成插件的形式,可以跨公司,跨平台的使用,封装后功能在和jmeter结合的情况下仍具有非常好的灵活性。

本发明实施例提供的实现webdriverjson协议ui自动化的方法,使用jmeter进行ui自动化封装,使得ui自动化的推广和参与性提高,降低测试人员在编写ui自动化脚本的门槛。测试人员在使用测试工具jmeter时可以从接口脚本,拓展到ui脚本。并通过可视化界面,丰富的现有方法,不需要或者少量编写代码的基础上完成ui自动化用例的编写,提高ui自动化的参与性和高效性。

基于一个总的发明构思,本发明实施例还提供一种实现webdriverjson协议ui自动化的装置。

图2为本发明实施例提供的一种实现webdriverjson协议ui自动化的装置结构示意图,请参阅图2,本发明实施例提供的装置,可以包括以下结构:6、封装模块21和运行模块22;

封装模块21,用于基于webdriverjson协议,封装http请求;基于jmeter,对webdriverjson协议进行封装,获取目标jmeter;

运行模块22,用于基于目标jmeter的界面,实现ui自动化。

可选的,封装模块21,用于:基于webdriverjson协议的底层基础的协议规范,封装http请求。

可选的,运行模块22,用于:根据目标jmeter向seleniumremoteserver发送json,从而实现ui自动化。

可选的,封装模块21,用于:启动远端服务器;基于远端服务器,获取webdriverjson协议的底层基础的协议规范;根据webdriverjson协议的底层基础的协议规范,封装http请求

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本发明实施例提供的实现webdriverjson协议ui自动化的方法,使用jmeter进行ui自动化封装,使得ui自动化的推广和参与性提高,降低测试人员在编写ui自动化脚本的门槛。测试人员在使用测试工具jmeter时可以从接口脚本,拓展到ui脚本。并通过可视化界面,丰富的现有方法,不需要或者少量编写代码的基础上完成ui自动化用例的编写,提高ui自动化的参与性和高效性。

基于一个总的发明构思,本发明实施例还提供一种实现webdriverjson协议ui自动化的设备。

图3为本发明实施例提供的一种实现webdriverjson协议ui自动化的设备结构示意图,请参阅图3,本发明实施例提供的一种实现webdriverjson协议ui自动化的设备,包括:处理器31,以及与处理器相连接的存储器32。

存储器32用于存储计算机程序,计算机程序至少用于上述任一实施例记载的实现webdriverjson协议ui自动化的方法;

处理器31用于调用并执行存储器中的计算机程序。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1