CN111464594A - Http接口连接方法、装置及存储介质 - Google Patents
Http接口连接方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111464594A CN111464594A CN202010174845.8A CN202010174845A CN111464594A CN 111464594 A CN111464594 A CN 111464594A CN 202010174845 A CN202010174845 A CN 202010174845A CN 111464594 A CN111464594 A CN 111464594A
- Authority
- CN
- China
- Prior art keywords
- cookie
- login
- http
- background server
- interface
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 235000014510 cooky Nutrition 0.000 claims abstract description 240
- 238000012360 testing method Methods 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 238000012795 verification Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种Http接口连接方法、装置及存储介质,包括:在后台服务器中设置获取接口,在Web前端设置开关变量以及存储变量;利用WebDriver驱动Web前端浏览器自动登录Web前端的登录页面;登录成功后,WebDriver驱动Web前端浏览器打开开关变量,触发后台服务器的获取接口,获取接口将登录用户的Cookie与后台服务器存储的Cookie比对,如一致则将后台服务器存储的Cookie加密保存到存储变量中;利用WebDriver驱动Web前端浏览器获取存储在存储变量中的Cookie并进行解密,将经过解密的Cookie与登录用户名信息保存在文件中;根据Http接口所使用用户名从文件中查找对应用户的Cookie,将获取的Cookie设置在Http接口请求的Header的Cookie项,向后台服务器发送Http接口请求;后台服务器获取Cookie项,并在校验登录态通过后执行Http接口的测试程序。
Description
技术领域
本发明涉及测试技术领域,具体地说,涉及Http接口连接方法、装置及存储介质。
背景技术
通常接口自动化测试,性能自动化测试等需要登录态的场景,可以利用Cookie跳过登录,利用Cookie跳过登录原理就是登录一次,查看登录态的Cookie信息,然后将这些信息加入HTTP接口请求头信息中,即可自动登录,从而开展接口自动化测试,性能Http接口连接程序。而登录用户的Cookie信息通常是后台服务器在获取登录用户的登录信息后保存到前端的Web前端浏览器页面上的document对象的Cookie属性中的。但是为防止用户登录态被窃取,有时会在Cookie中设置HttpOnly属性,httpOnly就是在设置cookie时接受这样一个参数,一旦被设置,在浏览器的document对象中就看不到cookie了。而浏览器在浏览网页的时候不受任何影响,因为Cookie会被放在浏览器头中发送出去。这样可以避免XSS攻击(黑客通过恶意植入js代码获取cookie的值)。给需要自动获取用户登录态的情况带来了困难,无法从Web前端浏览器使用JavaScript获取此类Cookie信息,在需要获取这类Cookie的时候通常是手动获取,获取效率低下,需要人工干预,难以使用在自动测试或自动操作中。
在自动化测试中,通常在需要时获取登录态的做法有:关闭登录态验证,添加登录后门接口并暴露给需求方或在需要的自动获取登录态时候取消登录态Cookie的HttpOnly属性,然而上述这些方法存在很大的安全隐患,难以在生产环境实施。
发明内容
为解决以上技术问题,本发明提供一种Http接口连接方法,应用于电子装置,包括以下步骤:
在后台服务器中设置Cookie获取接口,在Web前端设置测试开关变量以及Cookie存储变量;
利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息,登录Web前端的登录页面;
在登录成功后,通过后台服务器生成与登录用户信息对应的Cookie并存储到Web前端浏览器和后台服务器中,通过网页内驱动工具驱动Web前端浏览器打开测试开关变量,进而触发并调用后台服务器的Cookie获取接口,通过所述Cookie获取接口将与登录用户信息对应的Cookie与后台服务器存储的Cookie进行比对,如一致,则将后台服务器存储的Cookie进行加密得到Cookie加密值,并将所述Cookie加密值保存到Web前端浏览器的所述Cookie存储变量中;
利用网页内驱动工具驱动Web前端浏览器执行JavaScript程序获取存储在所述Cookie存储变量中的Cookie加密值并进行解密,将经过解密的Cookie与所述登录用户信息中包括的登录用户名保存在文件userCookie.txt中;
根据Http接口所使用用户从userCookie.txt文件中查找对应用户的Cookie,将获取的Cookie设置在Http接口请求的Header的Cookie项中,向后台服务器发送Http接口请求;
通过后台服务器获取Header的Cookie项,并在校验登录态通过后建立与Http接口的连接。
本发明还提供一种Http接口连接装置,包括:
接口及变量设置模块,在后台服务器中设置Cookie获取接口,在Web前端设置测试开关变量以及Cookie存储变量;
登录及验证模块,利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息,登录Web前端的登录页面;在登录成功后,通过后台服务器生成与登录用户信息对应的Cookie并存储到Web前端浏览器和后台服务器中,通过网页内驱动工具驱动Web前端浏览器打开测试开关变量,进而触发并调用后台服务器的Cookie获取接口,通过所述Cookie获取接口将与登录用户信息对应的Cookie与后台服务器存储的Cookie进行比对,如一致,则将后台服务器存储的Cookie进行加密得到Cookie加密值,并将所述Cookie加密值保存到Web前端浏览器的所述Cookie存储变量中;
Cookie获取及加密模块,利用网页内驱动工具驱动Web前端浏览器执行JavaScript程序获取存储在所述Cookie存储变量中的Cookie加密值并进行解密,将经过解密的Cookie与所述登录用户信息中包括的登录用户名保存在文件userCookie.txt中;
Http接口请求模块,根据Http接口所使用用户从userCookie.txt文件中查找对应用户的Cookie,将获取的Cookie设置在Http接口请求的Header的Cookie项中,向后台服务器发送Http接口请求,通过后台服务器获取Header的Cookie项,并在校验登录态通过后执行所述Http接口的测试程序。
本发明还提供一种电子装置,该电子装置包括:存储器和处理器,所述存储器中存储有Http接口连接程序,所述Http接口连接程序被所述处理器执行时实现如上所述的Http接口连接方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现如上所述的Http接口连接方法。
本发明通过添加需要进行登录鉴权验证的Cookie获取接口获取加密后的Cookie,Web前端通过打开测试开关触发自动调用Cookie获取接口,解决了登录态安全获取问题,并且结合WebDriver驱动Web前端浏览器自动化获取存储在后台服务器的Cookie,可以很方便的使用在需要登录态的自动化测试中。
附图说明
通过结合下面附图对其实施例进行描述,本发明的上述特征和技术优点将会变得更加清楚和容易理解。
图1是表示本发明实施例的Http接口连接方法的步骤示意图;
图2是表示用户账号保存在配置文件中的格式的示意图;
图3是表示Cookie与用户信息保存在文件中的格式的示意图;
图4是web前端的浏览器访问后台服务器生成Cookie的示意图;
图5是表示本发明实施例的电子装置的硬件架构示意图;
图6是表示本发明实施例的Http接口连接程序的模块构成图。
具体实施方式
下面将参考附图来描述本发明所述的Http接口连接方法、装置及存储介质的实施例。本领域的普通技术人员可以认识到,在不偏离本发明的精神和范围的情况下,可以用各种不同的方式或其组合对所描述的实施例进行修正。因此,附图和描述在本质上是说明性的,而不是用于限制权利要求的保护范围。此外,在本说明书中,附图未按比例画出,并且相同的附图标记表示相同的部分。
接口自动化测试是指对于一个接口或多个接口进行一系列的自动化的测试程序,从而校验数据的交换、传递和控制管理过程,以及相互逻辑依赖关系。例如,对于一个电影搜索引擎接口,测试其在不同的关键词下得到的搜索结果是否与关键词匹配。本申请是在Cookie中设置HttpOnly属性的情况下,实现自动化连接接口的方法,在实现自动化连接接口后,可以进行自动化测试程序,但本申请并不在于连接Http接口后的测试程序。
图1是表示本发明实施例的Http接口连接方法的步骤示意图,下面结合图1来说明本实施例的Http接口连接方法,包括以下步骤:
S1,在后台服务器中设置一个Cookie获取接口,在Web前端设置测试开关变量,以及Cookie存储变量。
该Cookie获取接口具有接口鉴权功能,该Cookie存储变量用于存储后台服务器返回的Cookie加密值。
并且,设置测试开关变量,以及Cookie存储变量的形式例如document.__CookiesStr,将该测试开关变量、Cookie存储变量设置在其他用户(非测试人员)无法知晓的前端页面,并标记该页面(例如,标记为Page1)中,并且开关变量的属性可以挂载到其他的具有复杂层次的JavaScript对象属性中,可以保证测试开关的隐蔽性。例如,定义localStorage.isTest开关变量,将localStorage.isTest开关变量隐藏在其他对象及参数中。
其中,对于定义对象a,其包含有多个属性,其中的属性b需要从其参数c中获取,参数c的获取又需要从参数d中获取,在d中设置测试开关变量localStorage.isTest的属性,其中a、b、c、d是与测试开关变量无关的对象及参数。并且,可以将测试开关变量及其属性的命名都使用与其实际意义完全不相关的字符来定义,这样多层次的复杂形式让非测试人员难以发现该参数的实际意义,从而增强测试开关的隐蔽性。
S2,将至少一个待测试账号按一定的格式保存在配置文件user.properties文件中。通常是用户名=密码的格式,例如图2第一行所示,Msgone=zhg20190,其中Msgone是用户名,zhg20190是密码。
S3,利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息,登录web前端的登录页面,例如使用WebDriver(网页内驱动工具)驱动Web前端浏览器自动输入登录用户信息,所述登录用户信息包括用户名、密码,并自动点击登录按钮。判断登录是否成功,若登录失败,则进行登录重试。
S4,在登录成功后,通过后台服务器生成与登录用户信息对应的Cookie并存储到Web前端浏览器和后台服务器中,通过网页内驱动工具驱动Web前端浏览器打开测试开关变量,进而触发并调用后台服务器的Cookie获取接口,通过所述Cookie获取接口将与登录用户信息对应的Cookie与后台服务器存储的Cookie进行比对,如一致,则将后台服务器存储的Cookie进行加密得到Cookie加密值,并将所述Cookie加密值保存到Web前端浏览器的所述Cookie存储变量中。以网页内驱动工具WebDriver为例,在登录成功后,WebDriver驱动Web前端浏览器访问设置有测试开关变量的前端页面(Page1),打开测试开关变量(localStorage.isTest=true)。测试开关变量打开后触发调用后台服务器的Cookie获取接口,Cookie获取接口进行接口鉴权。具体地,接口鉴权是指在首次访问登录页面的时候,如图4所示,后台服务器会生成与登录信息对应的Cookie,并发送给前端Web前端浏览器和保存在后台服务器中。但是由于前端Web前端浏览器的Cookie属性设置为HttpOnly,显然不能在前端用JavaScript程序获取Cookie。当再次访问该登录页面时,都会在HTTP Header中携带上该Cookie,Cookie获取接口可以通过比对请求方HTTP Header携带的Cookie与后台服务器中存储的Cookie是否一致来进行接口鉴权。如果一致,则将后台服务器存储的Cookie进行加密得到加密Cookie值,并通过Cookie获取接口发送保存到Web前端浏览器的Cookie存储变量中(例如,在Page1页面的变量document.__CookiesStr)。此处的加密算法可使用但不限于对称加密算法。
S5,利用网页内驱动工具驱动Web前端浏览器执行JavaScript程序获取存储在所述Cookie存储变量中的Cookie加密值并进行解密,将经过解密的Cookie与所述登录用户信息中包括的登录用户名保存在文件userCookie.txt中。
以WebDriver为例,WebDriver驱动Web前端浏览器执行JavaScript程序获取存储在Cookie存储变量中的加密Cookie值,其中,执行JavaScript程序是指通过WebDriver的executeScript()函数来实现的,例如执行代码:driver.executeScript("returndocument.__CookiesStr"),即可从document.__CookiesStr变量中获取存储的加密Cookie值,并进行解密。并将经过解密的Cookie与登录用户名信息按如下格式(用户名=用户Cookie值)保存在文件userCookie.txt中。如图3第一行所示,msgone是用户名,SESSION=12be318f-946d-4f47-ab4c-50de61cb1d43是Cookie值。
S6,根据Http接口所使用用户从userCookie.txt文件中查找对应用户的Cookie,将获取的Cookie设置在Http接口请求的Header的Cookie项中,向后台服务器发送Http接口请求。
S7,通过后台服务器获取Header的Cookie项,并在校验登录态通过后建立与Http接口的连接。
其中,进行登录态校验会在校验后返回请求结果(即通过或不通过),通过即代表Http接口请求成功,即可以建立与该Http接口的连接。
在一个可选实施例中,步骤S3中,判断登录是否成功是通过断言的方式,断言是通过布尔表达式的形式判断响应内容与预期返回是否一致,查看HTTP Header携带的Cookie信息中的响应内容与预期返回是否一致。例如通过页面title断言登录是否成功示例:Asserts.assertEqual(webDriver.getTitle(),“A”)。
其中,webDriver.getTitle()是获取登录页面的Title,“A”是预期返回页面的title“xxxx管理系统首页”,通过判断Title与“xxxx管理系统首页”是否相符来判断是否登录成功。
在一个可选实施例中,步骤S6中,发送Http接口请求包括发送GET请求,以采用HttpClient发送GET请求为例来具体说明一下向后台服务器发送Http接口请求的步骤,HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,包括以下步骤:
S601,使用HttpClients创建一个Closeable HttpClient对象;
S602,创建HttpGet对象,其形式如HttpGet httpGet=new HttpGet(“接口地址”);
S603,将上述获取的登录态Cookie设置在Http业务接口请求的Header(Cookie项)中,具体的,可以使用addHeader方法添加请求头部;
S604,通过执行HttpGet请求获取CloseableHttpResponse实例。
本发明还提供一种电子装置,参阅图4所示,是本发明电子装置的实施例的硬件架构示意图。本实施例中,所述电子装置2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图4所示,所述电子装置2至少包括,但不限于,可通过系统总线相互通信连接的存储器21、处理器22。其中:所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如所述Http接口连接程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置2的总体操作,例如执行与所述电子装置2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的Http接口连接程序等。
可选地,该电子装置2还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)显示器等。显示器用于显示在电子装置2中处理的信息以及用于显示可视化的用户界面。
需要指出的是,图4仅示出了具有组件21、22的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
包含可读存储介质的存储器21中可以包括操作系统、Http接口连接程序20等。处理器22执行存储器21中Http接口连接程序20时实现如上所述的S1至S7的步骤,在此不再赘述。在本实施例中,存储于存储器21中的所述Http接口连接程序20可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并可由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。例如,图5示出了所述Http接口连接程序模块示意图,该实施例中,所述Http接口连接程序20可以被分割为接口及变量设置模块201、鉴权模块202、Cookie获取及加密模块203、Http接口请求模块204。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述Http接口连接程序在所述电子装置2中的执行过程。以下描述将具体介绍所述程序模块的具体功能。
其中,接口及变量设置模块201用于在后台服务器中设置Cookie获取接口,在Web前端设置测试开关变量以及Cookie存储变量;
鉴权模块202利用网页内驱动工具驱动Web前端浏览器自动输入用户登录信息登录Web前端的登录页面,在登录成功后,网页内驱动工具驱动Web前端浏览器打开测试开关变量,进而触发调用后台服务器的Cookie获取接口,Cookie获取接口将登录用户的Cookie与后台服务器存储的Cookie进行比对,如一致,则将后台服务器存储的Cookie进行加密得到Cookie加密值保存到Web前端浏览器的所述Cookie存储变量中;
Cookie获取及加密模块203利用网页内驱动工具驱动Web前端浏览器执行JavaScript程序获取存储在所述Cookie存储变量中的Cookie加密值并进行解密,将经过解密的Cookie与登录用户名保存在文件userCookie.txt中;
Http接口请求模块204根据Http接口所使用登录用户从userCookie.txt文件中查找对应用户名的Cookie,将获取的Cookie设置在Http接口请求的Header的Cookie项中,向后台服务器发送Http接口请求,后台服务器获取Header的Cookie项,并在校验登录态通过后建立与所述Http接口的连接。
在一个可选实施例中,还包括登录验证模块205,用于通过断言的方式验证登录是否成功,断言是通过布尔表达式的形式判断响应内容与预期返回是否一致,查看HTTPHeader携带的Cookie信息中的响应内容与预期返回是否一致。例如通过页面title断言登录是否成功示例:Asserts.assertEqual(webDriver.getTitle(),“A”)。
其中,webDriver.getTitle()是获取登录页面的Title,“A”是预期返回页面的title“xxxx管理系统首页”,通过判断Title与“xxxx管理系统首页”是否相符来判断是否登录成功。
在一个可选实施例中,还包括GET请求发送模块206,采用HttpClient向后台服务器发送Http接口请求,包括以下步骤:
S601,使用HttpClients创建一个Closeable HttpClient对象;
S602,创建HttpGet对象,其形式如HttpGet httpGet=new HttpGet(“接口地址”);
S603,将上述获取的登录态Cookie设置在Http业务接口请求的Header(Cookie项)中,具体的,可以使用addHeader方法添加请求头部;
S604,通过执行HttpGet请求获取CloseableHttpResponse实例。
另外,本发明还提供一种Http接口连接装置,包括接口及变量设置模块201、鉴权模块202、Cookie获取及加密模块203、Http接口请求模块204。
其中,接口及变量设置模块201用于在后台服务器中设置Cookie获取接口,在Web前端设置测试开关变量以及Cookie存储变量;
鉴权模块202利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息登录Web前端的登录页面,在登录成功后,网页内驱动工具驱动Web前端浏览器打开测试开关变量,进而触发调用后台服务器的Cookie获取接口,Cookie获取接口将登录用户的Cookie与后台服务器存储的Cookie进行比对,如一致,则将后台服务器存储的Cookie进行加密得到Cookie加密值保存到Web前端浏览器的所述Cookie存储变量中;
Cookie获取及加密模块203利用网页内驱动工具驱动Web前端浏览器执行JavaScript程序获取存储在所述Cookie存储变量中的Cookie加密值并进行解密,将经过解密的Cookie与登录用户名保存在文件userCookie.txt中;
Http接口请求模块204根据Http接口所使用用户从userCookie.txt文件中查找对应用户的Cookie,将获取的Cookie设置在Http接口请求的Header的Cookie项中,向后台服务器发送Http接口请求,后台服务器获取Header的Cookie项,并在校验登录态通过后建立与所述Http接口的连接。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括Http接口连接程序等,所述Http接口连接程序20被处理器22执行时实现如下操作:
S1,在后台服务器中设置一个Cookie获取接口,在Web前端设置测试开关变量,以及Cookie存储变量。
S2,将至少一个待测试账号按一定的格式保存在配置文件user.properties文件中。
S3,利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息,登录web前端的登录页面。
S4,在登录成功后,通过后台服务器生成与登录用户信息对应的Cookie并存储到Web前端浏览器和后台服务器中,通过网页内驱动工具驱动Web前端浏览器打开测试开关变量,进而触发并调用后台服务器的Cookie获取接口,通过所述Cookie获取接口将与登录用户信息对应的Cookie与后台服务器存储的Cookie进行比对,如一致,则将后台服务器存储的Cookie进行加密得到Cookie加密值,并将所述Cookie加密值保存到Web前端浏览器的所述Cookie存储变量中。
S5,利用网页内驱动工具驱动Web前端浏览器执行JavaScript程序获取存储在所述Cookie存储变量中的Cookie加密值并进行解密,将经过解密的Cookie与所述登录用户信息中包括的登录用户名保存在文件userCookie.txt中。
S6,根据Http接口所使用登录用户从userCookie.txt文件中查找该用户的Cookie,将获取的Cookie设置在Http接口请求的Header的Cookie项中,向后台服务器发送Http接口请求。
S7,通过后台服务器获取Header的Cookie项,并在校验登录态通过后建立与Http接口的连接。
本发明之计算机可读存储介质的具体实施方式与上述Http接口连接方法以及电子装置2的具体实施方式大致相同,在此不再赘述。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种Http接口连接方法,应用于电子装置,其特征在于,包括以下步骤:
在后台服务器中设置Cookie获取接口,在Web前端设置测试开关变量以及Cookie存储变量;
利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息,登录Web前端的登录页面;
在登录成功后,通过后台服务器生成与登录用户信息对应的Cookie并存储到Web前端浏览器和后台服务器中,通过网页内驱动工具驱动Web前端浏览器打开测试开关变量,进而触发并调用后台服务器的Cookie获取接口,通过所述Cookie获取接口将与登录用户信息对应的Cookie与后台服务器存储的Cookie进行比对,如一致,则将后台服务器存储的Cookie进行加密得到Cookie加密值,并将所述Cookie加密值保存到Web前端浏览器的所述C ookie存储变量中;
利用网页内驱动工具驱动Web前端浏览器执行JavaScript程序获取存储在所述Cookie存储变量中的Cookie加密值并进行解密,将经过解密的Cooki e与所述登录用户信息中包括的登录用户名保存在文件userCookie.txt中;
根据Http接口所使用用户从userCookie.txt文件中查找对应用户的Cooki e,将获取的Cookie设置在Http接口请求的Header的Cookie项中,向后台服务器发送Http接口请求;
通过后台服务器获取Header的Cookie项,并在校验登录态通过后建立与Http接口的连接。
2.根据权利要求1所述的Http接口连接方法,其特征在于,在所述利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息登录Web前端的登录页面后,还包括:
通过断言方式中的Asserts.assertEqual(webDriver.getTitle(),“A”)判断是否登录成功;
其中,webDriver.getTitle()是获取登录页面的Title,A是预期返回页面的title,通过判断Title与A是否相符来判断是否登录成功。
3.根据权利要求1所述的Http接口连接方法,其特征在于,
发送Http接口请求包括发送GET请求,采用HttpClients发送GET请求包括以下步骤:
使用HttpClients创建Closeable HttpClient对象;
创建HttpGet对象,形式为HttpGet=new HttpGet(“接口地址”);
将从userCookie.txt文件中查找的Cookie设置在Http接口请求的Header的Cookie项中;
通过执行HttpGet请求获取Closeable HttpResponse实例。
4.根据权利要求1所述的Http接口连接方法,其特征在于,
将至少一个待测试账号保存在配置文件user.properties中,WebDriver从所述配置文件user.properties中获取登录信息。
5.根据权利要求1所述的Http接口连接方法,其特征在于,
加密算法包括对称加密算法。
6.根据权利要求1所述的Http接口连接方法,其特征在于,
通过WebDriver的executeScript()函数从Cookie存储变量中获取存储的加密Cookie值。
7.一种Http接口连接装置,其特征在于,包括:
接口及变量设置模块,在后台服务器中设置Cookie获取接口,在Web前端设置测试开关变量以及Cookie存储变量;
登录及验证模块,利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息,登录Web前端的登录页面;在登录成功后,通过后台服务器生成与登录用户信息对应的Cookie并存储到Web前端浏览器和后台服务器中,通过网页内驱动工具驱动Web前端浏览器打开测试开关变量,进而触发并调用后台服务器的Cookie获取接口,通过所述Cookie获取接口将与登录用户信息对应的Cookie与后台服务器存储的Cookie进行比对,如一致,则将后台服务器存储的Cookie进行加密得到Cookie加密值,并将所述Cookie加密值保存到Web前端浏览器的所述Cookie存储变量中;
Cookie获取及加密模块,利用网页内驱动工具驱动Web前端浏览器执行JavaScript程序获取存储在所述Cookie存储变量中的Cookie加密值并进行解密,将经过解密的Cookie与所述登录用户信息中包括的登录用户名保存在文件userCookie.txt中;
Http接口请求模块,根据Http接口所使用用户从userCookie.txt文件中查找对应用户的Cookie,将获取的Cookie设置在Http接口请求的Header的Co okie项中,向后台服务器发送Http接口请求,通过后台服务器获取Header的Cookie项,并在校验登录态通过后执行所述Http接口的测试程序。
8.一种电子装置,其特征在于,该电子装置包括:存储器和处理器,所述存储器中存储有Http接口连接程序,所述Http接口连接程序被所述处理器执行时实现如权利要求1-6中任一项所述的Http接口连接方法。
9.根据权利要求8所述的电子装置,其特征在于,所述Http接口连接程序被所述处理器执行时还实现:
在所述利用网页内驱动工具驱动Web前端浏览器自动输入登录用户信息登录Web前端的登录页面后,还包括:
通过断言方式中的Asserts.assertEqual(webDriver.getTitle(),“A”)判断是否登录成功;
其中,webDriver.getTitle()是获取登录页面的Title,A是预期返回页面的title,通过判断Title与A是否相符来判断是否登录成功。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,实现权利要求1至6中任一项所述的Http接口连接方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010174845.8A CN111464594B (zh) | 2020-03-13 | 2020-03-13 | Http接口连接方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010174845.8A CN111464594B (zh) | 2020-03-13 | 2020-03-13 | Http接口连接方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111464594A true CN111464594A (zh) | 2020-07-28 |
CN111464594B CN111464594B (zh) | 2024-07-05 |
Family
ID=71680785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010174845.8A Active CN111464594B (zh) | 2020-03-13 | 2020-03-13 | Http接口连接方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111464594B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268684A (zh) * | 2021-06-24 | 2021-08-17 | 深圳平安智汇企业信息管理有限公司 | 数据处理方法、装置、终端设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374359B1 (en) * | 1998-11-19 | 2002-04-16 | International Business Machines Corporation | Dynamic use and validation of HTTP cookies for authentication |
CN102946334A (zh) * | 2012-11-28 | 2013-02-27 | 中国移动(深圳)有限公司 | 一种获取有效图像验证码的方法和系统 |
CN107797911A (zh) * | 2016-09-02 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 用于测试http接口的方法和装置 |
CN109040072A (zh) * | 2018-08-06 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 一种客户端授权登录网页的方法、系统、服务器及存储介质 |
CN109783357A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 测试应用程序的方法及装置、计算机设备、存储介质 |
CN110442524A (zh) * | 2019-08-09 | 2019-11-12 | 中国建设银行股份有限公司 | 一种针对带有认证授权的web服务接口测试方法和装置 |
-
2020
- 2020-03-13 CN CN202010174845.8A patent/CN111464594B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6374359B1 (en) * | 1998-11-19 | 2002-04-16 | International Business Machines Corporation | Dynamic use and validation of HTTP cookies for authentication |
CN102946334A (zh) * | 2012-11-28 | 2013-02-27 | 中国移动(深圳)有限公司 | 一种获取有效图像验证码的方法和系统 |
CN107797911A (zh) * | 2016-09-02 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 用于测试http接口的方法和装置 |
CN109040072A (zh) * | 2018-08-06 | 2018-12-18 | 武汉斗鱼网络科技有限公司 | 一种客户端授权登录网页的方法、系统、服务器及存储介质 |
CN109783357A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 测试应用程序的方法及装置、计算机设备、存储介质 |
CN110442524A (zh) * | 2019-08-09 | 2019-11-12 | 中国建设银行股份有限公司 | 一种针对带有认证授权的web服务接口测试方法和装置 |
Non-Patent Citations (2)
Title |
---|
CDTAOGANG: ""接口自动化测试之接口测试基础"", Retrieved from the Internet <URL:http://t.csdnimg.cn/bFpuB> * |
孙瑜: ""基于Scrapy框架的网络爬虫系统的设计与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 January 2020 (2020-01-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268684A (zh) * | 2021-06-24 | 2021-08-17 | 深圳平安智汇企业信息管理有限公司 | 数据处理方法、装置、终端设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111464594B (zh) | 2024-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020233219A1 (zh) | 异常问题的定位方法、装置、设备及计算机可读存储介质 | |
US10262142B2 (en) | Systems and methods for advanced dynamic analysis scanning | |
Costin et al. | A {Large-scale} analysis of the security of embedded firmwares | |
US8281401B2 (en) | System for detecting vulnerabilities in web applications using client-side application interfaces | |
US8752183B1 (en) | Systems and methods for client-side vulnerability scanning and detection | |
US9742791B2 (en) | Site independent methods for deriving contextually tailored security vulnerability corrections for hardening solution stacks | |
CN111695156A (zh) | 业务平台的访问方法、装置、设备及存储介质 | |
US9679147B2 (en) | System and method for automated security testing | |
EP3097509A1 (en) | Intercepting and supervising calls to transformed operations and objects | |
US20170286644A1 (en) | Protection Method and Device for Application Data | |
CN102664874B (zh) | 一种安全登陆的方法和系统 | |
CN110417718B (zh) | 处理网站中的风险数据的方法、装置、设备及存储介质 | |
US11501000B2 (en) | Auto-injection of security protocols | |
EP2820582B1 (en) | Network service interface analysis | |
WO2019144548A1 (zh) | 安全测试方法、装置、计算机设备和存储介质 | |
CN110377481A (zh) | 日志管理方法、装置、设备及存储介质 | |
US9953169B2 (en) | Modify execution of application under test so user is power user | |
CN112039900A (zh) | 网络安全风险检测方法、系统、计算机设备和存储介质 | |
US10423793B2 (en) | Install runtime agent for security test | |
CN112860778A (zh) | 桌面应用程序的数据库管理方法、装置、设备和介质 | |
JP2008015733A (ja) | ログ管理計算機 | |
CN114329299A (zh) | 车辆网联服务管理网站架构 | |
US20240135028A1 (en) | System and method of dynamic search result permission checking | |
CN111464594B (zh) | Http接口连接方法、装置及存储介质 | |
CN115145674A (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 |