CN109885792B - 一种基于webdriver技术的APP桥接方法 - Google Patents
一种基于webdriver技术的APP桥接方法 Download PDFInfo
- Publication number
- CN109885792B CN109885792B CN201910007328.9A CN201910007328A CN109885792B CN 109885792 B CN109885792 B CN 109885792B CN 201910007328 A CN201910007328 A CN 201910007328A CN 109885792 B CN109885792 B CN 109885792B
- Authority
- CN
- China
- Prior art keywords
- interface
- request
- webdriver
- server
- 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.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于webdriver技术的App桥接方法,包括:基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用webdriver服务器下的浏览器;所述执行脚本使用所述浏览器自动执行,以生成http请求;以及Webdriver服务器分析web服务器对于所述http请求的响应,并将响应结果提供给接口封装服务器。
Description
技术领域
本发明涉及IT技术领域,具体地涉及一种基于webdriver技术的APP桥接方法。
背景技术
接口封装技术是指针对源码缺失、无原厂支持、数据库封闭等情况的软件系统,通过一系列技术手段,将系统的功能或者数据,通过API方式提供给第三方使用的技术。
现有BS(浏览器/服务器)系统的接口封装技术主要是分析并独立生成http请求,与服务器端通信,以实现功能和数据的接口封装并对外提供,其中,Http请求是指从客户端到服务器端的请求消息,包括:消息首行、对资源的请求方法、资源的标识符及使用的协议。当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息。
具体地,图1示出了现有的接口封装技术,其主要采用分析和生成http请求的方式来实现。如图1所示,该方法主要包括以下步骤:
1)针对BS系统,在浏览器上操作实现某个功能或者查询某个数据,使用抓包工具获取发向Web服务器的Http请求。
2)分析http请求,判断各个参数的含义,和数据的对应关系。
3)根据分析的结果,模拟生成http请求发送到Web服务器,查看是否可以实现和浏览器操作相同的结果。
4)重复第2)3)步,直到模拟的http操作可以实现和浏览器操作的相同结果。
5)按照分析结果,将http请求封装为API接口,供第三方使用。
然而,由于对原有系统不了解(黑盒),所以只能通过对操作的请求进行分析来推断,存在分析无效或者难度大的情况,例如某些参数异常复杂或加密的参数。
发明内容
鉴于以上问题,本发明提出了通过Webdriver技术来实现BS系统的功能和数据的接口封装,以提供给第三方系统使用。
WebDriver是浏览器自动化操作框架Selenium中的一个工具,提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应用程序,针对各个浏览器开发,支持Firefox、IE、Opera和Chrome浏览器,通过与浏览器的紧密集成支持创建更高级的测试。WebDriver还利用操作系统级的调用来模拟用户输入,可以实现Web页面的自动执行,包括文本框输入、按钮选择、按钮点击等操作。
根据本发明的一方面,提供了一种基于webdriver技术的App桥接方法,包括:
基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用webdriver服务器下的浏览器;
所述执行脚本使用所述浏览器自动执行,以生成http请求;以及
Webdriver服务器分析web服务器对于所述http请求的响应,并将响应结果提供给所述接口封装服务器。
在实施例中,该方法还包括:
第三方系统调用所述接口封装服务器的restful API接口,通过规定的接口参数传入所述API接口请求的参数。
在实施例中,基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用webdriver服务器下的浏览器,包括:
接口封装服务器获取所述API接口请求后,通过请求接口的地址,查询对应的封装接口,从所述API接口请求中读出传入的参数;以及
根据请求接口,查询对应的Webdriver配置脚本,使用所传入的参数,替换掉脚本中的参数,以生成执行脚本。
在实施例中,基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用webdriver服务器下的浏览器,包括:
接口封装服务器获取所述API接口请求后,通过请求接口的地址,查询对应的服务信息,如果查询到服务,则查询服务的变量和html变量,并从所述API接口请求中读出传入的参数;以及
根据请求接口,查询对应的Webdriver配置脚本,使用所传入的参数,替换掉脚本中的参数,以生成执行脚本。
在实施例中,如果未查询到服务,则返回响应。
在实施例中,根据请求接口,查询对应的Webdriver配置脚本,使用所传入的参数,替换掉脚本中的参数,以生成执行脚本,包括:
在所传入的参数中缺少所述执行脚本中对应的项,则在所述执行脚本中的项使用默认值。
在实施例中,Webdriver服务器分析web服务器对于所述http请求的响应,并将响应结果提供给接口封装服务器,包括:
Webdriver从web服务器对于所述http请求的响应中获取返回值并判断是否正确,如果执行正确,则抓取所述返回值中指定字段的内容或者保存全部信息。
在实施例中,该方法,还包括:
在抓取所述返回值中指定字段的内容或者保存全部信息之后,判断后续是否还存在接口请求;
如果后续还存在接口请求,则返回到步骤:基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用webdriver服务器下的浏览器;
如果后续不存在接口请求,则将所保存的返回值,按照接口封装配置,作为接口响应值返回给第三方系统。
在实施例中,webdriver服务器下的浏览器包括Firefox、IE、Opera和Chrome浏览器。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明的技术方案而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构和/或流程来实现和获得。
附图说明
附图用来提供对本发明的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本发明实施例的附图与本发明的实施例一起用于解释本发明的技术方案,但并不构成对本发明技术方案的限制。
图1示出现有的接口封装技术。
图2示出根据本发明实施例的基于webdriver技术的App桥接方法的原理图。
图3示出根据本发明实施例的基于webdriver技术的App桥接方法的流程图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成相应技术效果的实现过程能充分理解并据以实施。本发明实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。
同时,在以下说明中,出于解释的目的而阐述了许多具体细节,以提供对本发明实施例的彻底理解。然而,对本领域的技术人员来说显而易见的是,本发明可以不必用这里的具体细节或者所描述的特定方式来实施。
另外,附图所示出的本发明实施例的方法所包含的步骤,可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然本发明实施例的方法在所示的流程图中体现出了本发明的技术方案在执行时的一定的逻辑顺序,但通常而言,该逻辑顺序仅限于通过该流程图所示出的实施例。在本发明的另一些实施例中,本发明的技术方案的逻辑顺序也可以以不同于附图所示的方式来实现。
图2示出根据本发明实施例的基于webdriver技术的App桥接方法的原理图。
如图2所示,根据本发明的基于webdriver技术的App桥接方法,主要包括以下步骤:
基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用webdriver服务器下的浏览器;
所述执行脚本使用所述浏览器自动执行,以生成http请求;以及
Webdriver服务器分析web服务器对于所述http请求的响应,并将响应结果提供给接口封装服务器。
通过本发明的基于webdriver技术的App桥接方法,可以实现绝大部分BS系统的接口封装,兼容性更好,并且操作技术难度小,由于不用分析Http请求,因此不需要懂得Http技术,所有功能可以在页面上快速实现,提高了效率,并且可以保证功能的正确性。
具体地,该方法包括以下步骤:
1)接口调用
第三方系统调用接口封装服务器的Restful API接口(http请求),通过规定的接口参数传入数据,例如:查询用户信息接口,传入用户id。
2)查询配置
接口封装服务器获取到API接口请求后,通过请求接口地址(url),查询对应的封装的接口,从请求中读出传入参数,根据配置一一对应保存。
3)脚本执行
根据请求接口,查询对应的Webdriver配置脚本,使用第2步读取的传入参数,替换掉脚本中的参数,没有对应的使用默认值,生成执行脚本。
使用执行脚本调用Webdriver服务器下的浏览器,使用指定的浏览器,按照脚本逐一自动执行。例如打开系统登录页面,输入用户名密码,打开查询页面,输入查询条件(接口传入参数),点击查询按钮。
4)Web服务器执行并响应
在Web服务器响应浏览器响应后,将执行结果返回给浏览器。例如获取的查询结果列表。
5)判断并获取返回值。
Webdriver获取返回值并判断是否正确,如果执行正确,就按照配置信息,抓取返回值中指定字段的内容,也可以保存全部信息,通过Webdriver服务传递给接口封装服务器。
6)封装执行结果,作为接口回参(响应值)返回给第三方系统
将第5步保存的返回值信息,按照接口封装配置,作为接口响应值返回给第三方系统。
图3示出根据本发明实施例的基于webdriver技术的App桥接方法的流程图。
如图3所示,根据本发明的基于webdriver技术的App桥接方法包括:
步骤01:接口封装服务器接收来自第三方系统的请求。第三方系统调用接口封装服务器的Restful API接口(http请求),通过规定的接口参数传入数据,例如:查询用户信息接口,传入用户id。
步骤02:根据地址url查询服务信息。接口封装服务器获取到API接口请求后,通过请求接口地址(url),查询对应的服务信息。
步骤03:如果查询到服务,进一步查询服务的变量和html变量。接口封装服务器查询对应的封装的接口,从请求中读出传入参数,根据配置一一对应保存。
步骤04:根据请求信息、传入参数和变量包装参数或body。根据请求接口,查询对应的Webdriver配置脚本,使用第2步读取的传入参数,替换掉脚本中的参数,没有对应的使用默认值,生成执行脚本。
步骤05:发生请求。使用执行脚本调用Webdriver服务器下的浏览器,使用指定的浏览器,按照脚本逐一自动执行,以生成http请求。例如打开系统登录页面,输入用户名密码,打开查询页面,输入查询条件(接口传入参数),点击查询按钮。
步骤06:从响应中解析结果码和html变量值。Web服务器响应浏览器响应后,将执行结果返回给浏览器。例如获取的查询结果列表。
步骤07:保存响应信息。Webdriver服务器获取返回值并判断是否正确,如果执行正确,就按照配置信息,抓取返回值中指定字段的内容,也可以保存全部信息。
步骤08:判断后续是否还存在请求。如果是,则重复步骤04)至07)。如果否,则执行步骤09:保存服务结果。
步骤10:返回响应。在保存服务结果后,通过Webdriver服务传递给接口封装服务器。其中,在步骤02中,如果未查询到服务,则执行步骤10。
以下描述根据本发明的基于webdriver技术的App桥接方法的一实施例:
本示例涉及某企业的微信平台公众号,即通过封装的该企业员工信息查询接口,在企业的自助平台上查询公司员工的相关信息,并显示在该企业公众号上。
步骤01:该企业的微信公众号调用接口封装服务器的Restful API接口(http://api.paas.sinopec.com/appbridge/getadmessage,get请求),入参为AD账户(aduser=h.zhang)。
步骤02:接口封装服务器获取到API接口请求后,通过请求接口的URL地址(/appbridge/getadmessage),查询到查询员工信息的接口对应的服务配置。
步骤03:在查询到存在服务配置后,继续查询服务的输入参数(aduser)和保存的html脚本。
步骤04:使用接口的传入参数,替换掉对应的Webdriver脚本中的参数,没有对应的使用默认值,生成执行脚本。
步骤05:调用Webdriver服务器下的浏览器,按照脚本逐一自动执行,1)打开系统登录页面,2)输入用户名密码,3)打开查询页面,4)输入查询AD账户(接口传入参数),5)点击查询按钮,6)退出登录。
步骤06:Web服务器响应浏览器请求后,将执行结果返回给浏览器,包括获取到的员工信息。
步骤07:Webdriver服务器获取返回值,按照配置信息,抓取返回值中指定字段(员工信息部分)的内容。
步骤08:,通过Webdriver服务器,将抓取的返回值中的指定字段(员工信息部分)的内容传递给接口封装服务器,接口封装服务器将其作为接口的响应体,返回给该企业公众号,公众号将其显示处理,完成一个查询功能。
综上所述,本发明通过webdriver技术,可以实现绝大部分BS系统的接口封装,兼容性更好,并且操作技术难度小,由于不用分析Http请求,因此不需要懂得Http技术,所有功能可以在页面上快速实现,提高了效率,并且可以保证功能的正确性。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定处理步骤或材料,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。
说明书中提到的“实施例”意指结合实施例描述的特定特征、或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“实施例”并不一定均指同一个实施例。
本领域的技术人员应该明白,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域的技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM或技术领域内所公知的任意其它形式的存储介质中。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (8)
1.一种基于Webdriver技术的App桥接方法,包括:
基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用Webdriver服务器下的浏览器;
所述执行脚本使用所述浏览器自动执行,以生成http请求;以及
Webdriver服务器分析web服务器对于所述http请求的响应,并将响应结果提供给所述接口封装服务器;
其中,基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用Webdriver服务器下的浏览器,包括:
接口封装服务器获取所述API接口请求后,通过请求接口的地址,查询对应的封装接口,从所述API接口请求中读出传入的参数;以及
根据请求接口,查询对应的Webdriver配置脚本,使用所传入的参数,替换掉脚本中的参数,以生成执行脚本。
2.根据权利要求1所述的方法,还包括:
第三方系统调用所述接口封装服务器的restful API接口,通过规定的接口参数传入所述API接口请求的参数。
3.根据权利要求1所述的方法,其中,基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用Webdriver服务器下的浏览器,包括:
接口封装服务器获取所述API接口请求后,通过请求接口的地址,查询对应的服务信息,如果查询到服务,则查询服务的变量和html变量,并从所述API接口请求中读出传入的参数;以及
根据请求接口,查询对应的Webdriver配置脚本,使用所传入的参数,替换掉脚本中的参数,以生成执行脚本。
4.根据权利要求3所述的方法,其中,如果未查询到服务,则返回响应。
5.根据权利要求1或3所述的方法,其中,根据请求接口,查询对应的Webdriver配置脚本,使用所传入的参数,替换掉脚本中的参数,以生成执行脚本,包括:
若在所传入的参数中缺少所述执行脚本中对应的项,则在所述执行脚本中的项使用默认值。
6.根据权利要求5所述的方法,其中,Webdriver服务器分析web服务器对于所述http请求的响应,并将响应结果提供给接口封装服务器,包括:
Webdriver从web服务器对于所述http请求的响应中获取返回值并判断是否正确,如果执行正确,则抓取所述返回值中指定字段的内容或者保存全部信息。
7.根据权利要求6所述的方法,还包括:
在抓取所述返回值中指定字段的内容或者保存全部信息之后,判断后续是否还存在接口请求;
如果后续还存在接口请求,则返回到步骤:基于所获取的API接口请求,接口封装服务器生成执行脚本,以调用Webdriver服务器下的浏览器;
如果后续不存在接口请求,则将所保存的返回值,按照接口封装配置,作为接口响应值返回给第三方系统。
8.根据权利要求7所述的方法,其中,Webdriver服务器下的浏览器包括Firefox、IE、Opera和Chrome浏览器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007328.9A CN109885792B (zh) | 2019-01-04 | 2019-01-04 | 一种基于webdriver技术的APP桥接方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910007328.9A CN109885792B (zh) | 2019-01-04 | 2019-01-04 | 一种基于webdriver技术的APP桥接方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885792A CN109885792A (zh) | 2019-06-14 |
CN109885792B true CN109885792B (zh) | 2021-03-26 |
Family
ID=66925570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910007328.9A Active CN109885792B (zh) | 2019-01-04 | 2019-01-04 | 一种基于webdriver技术的APP桥接方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885792B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110738024A (zh) * | 2019-09-24 | 2020-01-31 | 深圳丝路天地电子商务有限公司 | 将WebAPP转换为API服务接口的方法 |
CN111355783A (zh) * | 2020-02-19 | 2020-06-30 | 樊果(上海)教育科技有限公司 | 基于浏览器驱动器的在线教育系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182700A (zh) * | 2013-12-12 | 2014-12-03 | 南宁市磁汇科技有限公司 | 保护web页面可执行脚本的方法 |
CN107729358A (zh) * | 2017-09-01 | 2018-02-23 | 小草数语(北京)科技有限公司 | 基于浏览器的页面访问方法和装置 |
CN108845925A (zh) * | 2018-03-30 | 2018-11-20 | 新华三技术有限公司 | web页面测试方法、装置、电子设备及计算机可读介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840415A (zh) * | 2010-03-15 | 2010-09-22 | 福建鑫诺通讯技术有限公司 | 一种在b/s架构下通过lua脚本控制本地资源的方法 |
US20150378881A1 (en) * | 2014-06-30 | 2015-12-31 | Bank Of America Corporation | Platform-independent selenium to application lifecycle management ("alm") server connectivity |
CN107728999A (zh) * | 2017-11-14 | 2018-02-23 | 苏州奇松软件有限公司 | 一种App、小程序接口模拟的方法和系统 |
CN108055248B (zh) * | 2017-11-30 | 2020-12-25 | 平安科技(深圳)有限公司 | 基于dubbo框架的远程调用方法、服务器及存储介质 |
-
2019
- 2019-01-04 CN CN201910007328.9A patent/CN109885792B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182700A (zh) * | 2013-12-12 | 2014-12-03 | 南宁市磁汇科技有限公司 | 保护web页面可执行脚本的方法 |
CN107729358A (zh) * | 2017-09-01 | 2018-02-23 | 小草数语(北京)科技有限公司 | 基于浏览器的页面访问方法和装置 |
CN108845925A (zh) * | 2018-03-30 | 2018-11-20 | 新华三技术有限公司 | web页面测试方法、装置、电子设备及计算机可读介质 |
Non-Patent Citations (2)
Title |
---|
Testing using Selenium Web Driver;Ramya, Paruchuri等;《PROCEEDINGS OF THE 2017 IEEE SECOND INTERNATIONAL CONFERENCE ON ELECTRICAL, COMPUTER AND COMMUNICATION TECHNOLOGIES (ICECCT)》;20171231;全文 * |
社交网络数据抓取和社团发现研究;王川;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109885792A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090082008A1 (en) | Mobile Phone Code Debugging Method and Apparatus | |
US6119247A (en) | Remote debugging of internet applications | |
CN110808897A (zh) | 代理访问方法、用户设备、存储介质、装置及系统 | |
CN107360261B (zh) | 一种http请求处理方法、装置及电子设备 | |
CN107688529B (zh) | 组件调试方法和装置 | |
JPH10301960A (ja) | パラメータ相互作用定義項目を用いるネットワーク上の音声相互作用のための方法と装置 | |
CN109885792B (zh) | 一种基于webdriver技术的APP桥接方法 | |
CN103825783A (zh) | 一种测试方法及装置 | |
CN112019609B (zh) | 基于物联网的设备监控方法、装置、设备及计算机介质 | |
US20060020948A1 (en) | Real-time multi-modal business transformation interaction | |
CN111124861A (zh) | 网页数据的录制方法、网页数据录制装置及可读存储介质 | |
TW202147101A (zh) | 動態整合應用程式的方法以及應用該方法的軟體系統與機器 | |
EP2973192B1 (en) | Online privacy management | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
WO2021093672A1 (zh) | 外部系统的嵌入方法、工作流系统、设备及计算机可读存储介质 | |
CN111131442B (zh) | 网页数据的监听方法、终端设备及可读存储介质 | |
CN113760397A (zh) | 接口调用的处理方法、装置、设备及存储介质 | |
CN115454878A (zh) | 一种应用于微服务的接口调用测试方法及相关装置 | |
CN116599949A (zh) | 基于http协议的第三方api协议接入方法及系统 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
CN104767808B (zh) | 一种基于支持ajax的web代理方法 | |
CN113315829B (zh) | 客户端离线化h5页面加载方法、装置、计算机设备及介质 | |
CN113065079B (zh) | 基于地址协议实现调用原生页面的方法、设备及存储介质 | |
CN105721251A (zh) | 一种可配置测试桩服务的方法及系统 | |
CN111078571A (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 |