CN113268684A - 数据处理方法、装置、终端设备以及存储介质 - Google Patents

数据处理方法、装置、终端设备以及存储介质 Download PDF

Info

Publication number
CN113268684A
CN113268684A CN202110705311.8A CN202110705311A CN113268684A CN 113268684 A CN113268684 A CN 113268684A CN 202110705311 A CN202110705311 A CN 202110705311A CN 113268684 A CN113268684 A CN 113268684A
Authority
CN
China
Prior art keywords
page
login
user
cookie information
html
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
CN202110705311.8A
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.)
Shenzhen Pingan Zhihui Enterprise Information Management Co ltd
Original Assignee
Shenzhen Pingan Zhihui Enterprise Information Management 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 Shenzhen Pingan Zhihui Enterprise Information Management Co ltd filed Critical Shenzhen Pingan Zhihui Enterprise Information Management Co ltd
Priority to CN202110705311.8A priority Critical patent/CN113268684A/zh
Publication of CN113268684A publication Critical patent/CN113268684A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例公开了一种数据处理方法、装置、终端设备以及存储介质,该方法包括:获取待测试系统的登录页面的页面地址,通过虚拟浏览器和页面地址获取对应的html页面对象,html页面对象中包括至少两个页面元素。在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。采用本申请实施例,可降低接口自动化测试的难度,提高接口自动化测试的效率,适用性高。

Description

数据处理方法、装置、终端设备以及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、终端设备以及存储介质。
背景技术
当前,测试人员在进行接口自动化测试时,通常需要先编写登录接口的脚本,以获取用户权限,进而在成功获取到用户权限后,再编写后续的测试脚本以开展接口自动化测试,但是这种通过编写登录接口的脚本来获取用户权限的方式,在编写脚本时,难度较大,且需要测试人员事先知道系统登录时所用的加密算法,如果获取不到加密算法,就无法实现编写登录接口的脚本。因为针对运行在pass平台上各个企业的企业系统,为保证企业信息安全,外部企业的测试人员是无法获取到该企业内部的登录接口的加密算法的,因此无法实现登录,进而无法开展后续的接口自动化测试工作。
发明内容
本申请实施例提供一种数据处理方法、装置、终端设备以及存储介质,可降低接口自动化测试的难度,提高接口自动化测试的效率,适用性高。
第一方面,本申请实施例提供了一种数据处理方法,该方法包括:
获取待测试系统的登录页面的页面地址,通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述html页面对象中包括至少两个页面元素;
在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息,并在登录成功后获取所述用户对应的cookie信息;
将获取到的所述cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据所述完整的接口请求进行接口自动化测试。
结合第一方面,在一种可能的实施方式中,所述方法还包括:
初始化一个客户端对象;
为所述客户端对象设置浏览器属性,以生成所述虚拟浏览器。
结合第一方面,在一种可能的实施方式中,所述用户的登录信息包括所述用户的用户名和所述用户的登录密码,所述至少两个页面元素包括第一页面元素和第二页面元素;
所述在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息,包括:
在所述html页面对象中的所述第一页面元素处导入所述用户名,以及在所述html页面对象中的所述第二页面元素处导入所述登录密码。
结合第一方面,在一种可能的实施方式中,所述在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息之后,所述方法还包括:
模拟点击登录操作以触发页面跳转,并获取跳转后的页面对应的页面地址;
若获取到的跳转后的页面对应的页面地址与所述登录页面的页面地址不同,则确定登录成功。
结合第一方面,在一种可能的实施方式中,所述获取所述用户对应的cookie信息,包括:
通过第一命令webClient.getCookies(htmlPage.getDocumentURI())获取跳转后的页面的cookie信息,作为所述用户对应的cookie信息。
结合第一方面,在一种可能的实施方式中,所述通过虚拟浏览器和所述页面地址获取对应的html页面对象之前,所述方法还包括:
获取所述用户的登录信息,对所述登录页面的页面地址和所述用户的登录信息进行拼接,并对拼接后数据进行哈希运算,以生成第一哈希值作为所述用户对应的cookie信息的索引;
所述通过虚拟浏览器和所述页面地址获取对应的html页面对象,包括:
若确定历史cookie信息表中不包括所述索引对应的cookie信息,则执行通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述历史cookie信息表中包括至少一个索引和每个索引对应的cookie信息。
结合第一方面,在一种可能的实施方式中,所述根据所述完整的接口请求进行接口自动化测试之后,所述方法还包括:
将所述第一哈希值和所述用户对应的cookie信息关联存储在所述历史cookie信息表中。
第二方面,本申请实施例提供了一种数据处理装置,该装置包括:
数据预处理模块,用于获取待测试系统的登录页面的页面地址,通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述html页面对象中包括至少两个页面元素;
cookie信息获取模块,用于在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息,并在登录成功后获取所述用户对应的cookie信息;
接口自动化测试模块,用于将获取到的所述cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据所述完整的接口请求进行接口自动化测试。
结合第二方面,在一种可能的实施方式中,所述数据预处理模块包括第一预处理单元,所述第一预处理单元用于:
初始化一个客户端对象;
为所述客户端对象设置浏览器属性,以生成所述虚拟浏览器。
结合第二方面,在一种可能的实施方式中,所述用户的登录信息包括所述用户的用户名和所述用户的登录密码,所述至少两个页面元素包括第一页面元素和第二页面元素;
所述cookie信息获取模块包括登录处理单元,所述登录处理单元用于:
在所述html页面对象中的所述第一页面元素处导入所述用户名,以及在所述html页面对象中的所述第二页面元素处导入所述登录密码。
结合第二方面,在一种可能的实施方式中,所述装置还包括登录确认模块,所述登录确认模块具体用于:
模拟点击登录操作以触发页面跳转,并获取跳转后的页面对应的页面地址;
若获取到的跳转后的页面对应的页面地址与所述登录页面的页面地址不同,则确定登录成功。
结合第二方面,在一种可能的实施方式中,所述cookie信息获取模块包括cookie信息获取单元,所述cookie信息获取单元具体用于:
通过第一命令webClient.getCookies(htmlPage.getDocumentURI())获取跳转后的页面的cookie信息,作为所述用户对应的cookie信息。
结合第二方面,在一种可能的实施方式中,所述装置还包括cookie索引确定模块,所述cookie索引确定模块具体用于:
获取所述用户的登录信息,对所述登录页面的页面地址和所述用户的登录信息进行拼接,并对拼接后数据进行哈希运算,以生成第一哈希值作为所述用户对应的cookie信息的索引;
所述数据预处理模块包括第二预处理单元,所述第二预处理单元用于:
若确定历史cookie信息表中不包括所述索引对应的cookie信息,则执行通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述历史cookie信息表中包括至少一个索引和每个索引对应的cookie信息。
结合第二方面,在一种可能的实施方式中,所述装置还包括cookie信息表更新模块,所述cookie信息表更新模块具体用于:
将所述第一哈希值和所述用户对应的cookie信息关联存储在所述历史cookie信息表中。
第三方面,本申请实施例提供了一种终端设备,该终端设备包括处理器、存储器和收发器,该处理器、存储器和收发器相互连接。该存储器用于存储支持该终端设备执行上述第一方面和/或第一方面任一种可能的实现方式提供的方法的计算机程序,该计算机程序包括程序指令,该处理器和收发器被配置用于调用上述程序指令,执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面和/或第一方面任一种可能的实施方式所提供的方法。
在本申请实施例中,获取待测试系统的登录页面的页面地址,通过虚拟浏览器和页面地址获取对应的html页面对象,html页面对象中包括至少两个页面元素。在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。可理解的,本申请在执行待测试系统的接口自动化测试时,无需获取待测试系统在登录时所用的加密算法,降低接口自动化测试的难度,保证了客户企业的信息安全,与此同时,本申请在获取cookie信息时,无需安装web浏览器及浏览器驱动,而是借助htmlunit这个ui自动化的单测框架,采用java语言编写无界面浏览器以用于模拟用户登录过程,进而获取登录状态的cookie信息,使得本申请实施例除了可适用Windows环境,还可以在Linux环境下运行,适用性更高,并且,无界面即无需在终端设备中打开浏览器去渲染各种js资源文件,所以执行速度会远快于纯webdriver方式加载浏览器驱动的方式,进一步提高了接口自动化测试的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据处理方法的一流程示意图;
图2是本申请实施例提供的数据处理方法的另一流程示意图;
图3是本申请实施例提供的数据处理装置的一结构示意图;
图4是本申请实施例提供的数据处理装置的另一结构示意图;
图5是本申请实施例提供的终端设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,市面上几乎所有公司的系统都只能在认证通过(或称为登录成功后)后才能进行其他操作,例如,在认证通过后进行接口自动化测试、性能自动化测试等。因此,对于测试人员而言,通常需要先编写登录接口的脚本,以获取用户权限,进而在成功获取到用户权限后,再编写后续的测试脚本以开展接口自动化测试。然而,实际情况是,不同的公司为了安全考虑都会对登录的参数做加密操作,因此,基于上述方法,测试人员只有在事先知道该公司的系统在登录时所用的加密算法时,才能实现通过编写登录脚本以获取用户权限。其中,由于编写脚本增加存在一定难度,并且也需要花费一部分人力沟通成本去了解加密算法,实现成本高。与此同时,针对运行在pass平台中的不同企业的企业系统,为保证企业信息安全,企业一般不会将该企业内部登录接口的加密算法告知外部企业的测试人员,因此,若外部企业的测试人员无法获取到该企业内部的登录接口的加密算法,将无法实现登录,进而无法开展后续的接口自动化测试工作。
基于此,在一些可行的实施方式中,还提出了可以利用cookie跳过登录。其中,利用cookie跳过登录的原理就是登录一次,查看登录态的cookie信息,然后将这些信息加入接口请求的请求头中,即可实现自动登录,从而开展接口自动化测试。具体实现时,首先,用户需要先在终端设备中安装web前端浏览器及浏览器驱动,然后通过加载浏览器驱动以控制web前端浏览器自动登录web前端的登录页面,并在登录成功后,再通过浏览器驱动获取登录页面中的cookie信息。但是,这种在界面上运行web前端浏览器,并加载浏览器驱动的方式耗费时间长,执行速度慢,且由于是有界面运行,因此无法运行在Linux环境下。
其中,本申请实施例提供了一种数据处理方法,该方法采用无界面运行和无需加载器驱动运行的web自动化框架(例如htmlUnit)编写无界面浏览器以用于模拟用户登录过程,进而在登录成功后获取当前页面的cookies信息。该方法可广泛适用于能够进行接口自动化测试的各种终端设备。其中,上述终端设备包括但不限于服务器、智能手机、平板电脑、笔记本电脑和台式计算机等,在此不做限制。为方便描述,下面将以终端设备为例进行说明。其中,本申请实施例中所涉及的终端设备可配置/运行在Linux环境Windows环境下。为方便理解,下面以配置了Linux环境的终端设备为例进行说明。其中,本申请实施例中的终端设备上还搭建了pass平台,该pass平台上可运行着不同公司的公司系统,其中,待测试系统为多个系统中的一个或多个系统,在此不做限制。
具体地,终端设备获取待测试系统的登录页面的页面地址,可通过虚拟浏览器和页面地址获取对应的html页面对象,html页面对象中包括至少两个页面元素。在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。采用本申请实施例,可降低接口自动化测试的难度,提高接口自动化测试的效率,适用性高。也就是说,由于本申请在获取cookie信息时,无需安装web浏览器及浏览器驱动,而是借助htmlunit这个ui自动化的单测框架,采用java语言编写无界面浏览器以用于模拟用户登录过程,进而获取登录状态的cookie信息,使得本申请实施例可以在Linux环境下运行,适用性更高。其次,无界面即无需在终端设备中打开浏览器去渲染各种js资源文件,所以执行速度会远快于纯webdriver方式加载浏览器驱动的方式,进一步提高了接口自动化测试的效率。
下面将结合图1至图5分别对本申请实施例提供的方法及相关装置分别进行详细说明。
请参见图1,图1为本申请实施例提供的数据处理方法的一流程示意图。本申请实施例提供的方法可以包括如下步骤S101至S103:
S101、获取待测试系统的登录页面的页面地址,通过虚拟浏览器和页面地址获取对应的html页面对象。
在一些可行的实施方式中,获取待测试系统的登录页面的页面地址,通过虚拟浏览器和页面地址获取对应的html页面对象。其中,虚拟浏览器的创建过程可理解为:通过创建命令new webClient(),初始化一个客户端对象,然后再对这个客户端对象设置各种属性,例如通过webClient.setJavaScriptEnabled(true);给客户端设置支持JavaScript,目的是为了通过待测试系统内部自身的加密机制给用户输入的账号和密码进行加密操作,以生成虚拟浏览器。
其中,该待测试系统为运行/搭载在pass平台上的子系统。也就是说,该pass平台上可以搭载多个公司对应的多个公司系统,其中,该待测试系统为多个公司中某一个公司对应的公司系统。通常而言,页面地址也可以称为统一资源定位符(uniform resourcelocator,URL),其中,一个页面对应一个页面地址。具体地,通过虚拟浏览器和所述页面地址获取对应的html页面对象可理解为:根据接收到的控制命令HtmlPage htmlPage=webClient.getPage(URL)操作所述虚拟浏览器,以获取所述页面地址对应的html页面对象。也就是说,通过上述控制命令可实现根据登录页面的URL(即页面地址)获取对应的html页面对象(如果是有界面操作,此步骤相当于是在web浏览器中打开所述页面地址所对应的登录页面)。其中,html页面对象中包括至少两个页面元素(或称为页面表单元素)。通常而言,上述至少两个页面元素可包括用于承载用户名的第一页面元素和用于承载登录密码的第二页面元素。可选的,html页面对象中还可以包括用于承载验证码的第三页面元素,具体根据实际应用场景确定,在此不做限制。
S102、在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。
在一些可行的实施方式中,在获取到html页面对象后,可以在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。通常而言,用户的登录信息包括用户的用户名和用户的登录密码,因此,上述在html页面对象中的至少两个页面元素中输入用户的登录信息可理解为:在html页面对象中的第一页面元素处导入用户名(即userName),以及在html页面对象中的第二页面元素处导入登录密码(即password)。具体地,可根据接收到的控制命令HtmlForm form=htmlPage.getFormByName("userName")在第一页面元素中自动导入用户名,根据控制命令HtmlForm form=htmlPage.getFormByName("password")在第二页面元素中自动导入登录密码。可选的,用户的登录信息还可以包括验证码(即code),因此,还可以根据控制命令HtmlForm form=htmlPage.getFormByName("code")在第三页面元素中自动导入验证码,进而,通过模拟点击登录操作以触发页面跳转(如果是有界面操作,此步骤相当于模拟用户在登录页面上进行登录操作)。可理解的,在模拟点击登录操作后,还可以进一步获取跳转后的页面对应的页面地址,其中,若获取到的跳转后的页面对应的页面地址与登录页面的页面地址不同,则确定登录成功,若获取到的跳转后的页面对应的页面地址与登录页面的页面地址相同,则确定登录失败。
具体地,本申请实施例可根据接收到的控制命令HtmlPage nextPage=button.click()触发页面跳转,并通过控制命令htmlPage.getDocumentURI()获取跳转后的页面对应的页面地址。因此,可将跳转后页面的页面地址与登录页面的页面地址进行比较,以确定是否登录成功。其中,将跳转后页面的页面地址与登录页面的页面地址进行比较可理解为:将跳转后页面的页面地址包括的各个字符与登录页面的页面地址包括的各个字符进行逐一比对,以确定跳转后页面的页面地址与登录页面的页面地址是否相同,进而确定是否登录成功。可选的,也可以分别对跳转后页面的页面地址与登录页面的页面地址进行哈希运算,以得到2个哈希值,通过比较所得到的2个哈希值是否相同以判断是否登录成功。通常而言,若该2个哈希值相同,则可确定跳转后页面的页面地址与登录页面的页面地址相同(即登录失败),若该2个哈希值不相同,则可确定跳转后页面的页面地址与登录页面的页面地址不相同(即登录成功)。
在一些可行的实施方式中,在登录成功后,即可获取到所述用户对应的cookie信息。具体地,可以通过接收控制命令webClient.getCookies(htmlPage.getDocumentURI()),以根据该控制命令获取登录成功并跳转后的页面的cookie信息以作为该用户对应的cookie信息。
S103、将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。
在一些可行的实施方式中,当获取到cookie信息后,可将获取到的所述cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据所述完整的接口请求进行接口自动化测试。通常而言,可以通过RestAssured工具类提供的静态方法requestSpecification=given()创建一个接口请求实例对象(即用于接口化测试的测试用例,或称为接口请求),然后再通过指令requestSpecification.header(“cookie”,{{引用步骤S102获取的cookie值}})给接口请求在头部信息中添加cookie信息以生成完整接口请求,最后通过requestSpecification.when().get({{接口测试api}})发送最终的接口请求(即上述完整的接口请求),从而实现在接口自动化测试脚本里面使用步骤S102提供的cookie信息实现在登录状态下进行接口自动化测试。
在本申请实施例中,获取待测试系统的登录页面的页面地址,可通过虚拟浏览器和页面地址获取对应的html页面对象,html页面对象中包括至少两个页面元素。在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。可理解的,由于本申请无需安装web前端浏览器及浏览器驱动,且因为是无界面运行,因此,本申请实施例除了在Windows环境下运行,还可以在linux环境下运行,适用范围更广。且由于是无界面运行的,因此无需在终端设备上打开web浏览器去渲染各种js资源文件,所以执行速度会远快于webdriver方式加载浏览器驱动的方式,接口自动化测试的效率更高,适用性更高。
请参见图2,图2是本申请实施例提供的数据处理方法的另一流程示意图。本申请实施例提供的数据处理方法可通过如下步骤S201至S206提供的实现方式进行说明:
S201、初始化一个客户端对象,为客户端对象设置浏览器属性,以生成虚拟浏览器。
在一些可行的实施方式中,可首先创建虚拟浏览器。具体地,可以通过创建命令new webClient(),初始化一个客户端对象,然后再对这个客户端对象设置各种属性,以使得该客户端对象具备浏览器功能(即生成虚拟浏览器)。例如可以通过webClient.setJavaScriptEnabled(true)给客户端对象设置支持JavaScript的功能,以使得创建出的虚拟浏览器可以通过待测试系统内部自身的加密机制给用户输入的账号和密码进行加密操作等。也就是说,通过添加JavaScript属性可使得创建出的虚拟浏览器具备调用待测试系统的加密工具的作用。其中,加密工具用于实现登录的加密算法。
S202、获取待测试系统的登录页面的页面地址和用户的登录信息,对登录页面的页面地址和用户的登录信息进行拼接,并对拼接后数据进行哈希运算,以生成第一哈希值作为用户对应的cookie信息的索引。
在一些可行的实施方式中,可获取待测试系统的登录页面的页面地址和用户的登录信息,对登录页面的页面地址和用户的登录信息进行拼接,并对拼接后数据进行哈希运算,以生成第一哈希值作为用户对应的cookie信息的索引。其中,用户的登录信息可包括用户名,登录密码,验证码等,在此不做限制。其中,对登录页面的页面地址和用户的登录信息执行拼接操作时,拼接顺序可以是页面地址在前,登录信息在后,或者,拼接顺序可以是登录信息在前,页面地址在后,在此不做限制。为便于理解,以下本申请实施例皆以页面地址在前,登录信息在后为例进行说明。也就是说,第一哈希值=hash(登录页面的页面地址+用户的登录信息)
S203、若确定历史cookie信息表中不包括该索引对应的cookie信息,则执行通过虚拟浏览器和页面地址获取对应的html页面对象。
在一些可行的实施方式中,若确定历史cookie信息表中不包括该索引对应的cookie信息,则执行通过虚拟浏览器和页面地址获取对应的html页面对象的步骤。若确定历史cookie信息表中包括该索引对应的cookie信息,则可直接将历史cookie信息表中包括的第一哈希值(即上述索引)对应的cookie信息作为登录状态的cookie信息,以用于接口自动化测试。其中,历史cookie信息表中包括至少一个索引和每个索引对应的cookie信息。可理解的,历史cookie信息表中的索引和索引对应的cookie信息可以是基于历史测试数据得到的。
其中,通过虚拟浏览器和页面地址获取html页面对象的实现过程可参见图1对应的实施例中对步骤S101的相关描述,这里不再进行赘述。
S204、在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。
S205、将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。
其中,所述步骤S204至步骤S205的具体实现方式可以参见图1对应的实施例中对步骤S102至步骤S103的描述,这里不再进行赘述。
S206、将第一哈希值和用户对应的cookie信息关联存储在历史cookie信息表中。
在一些可行的实施方式中,可将通过上述步骤S202确定出的第一哈希值与上述步骤S204获取到的cookie信息关联存储在历史cookie信息表中,以更新cookie信息表。因此,在后续测试过程中,可复用cookie信息表中存储的cookie信息用于接口自动化测试或性能测试等,在此不做限制。
在本申请实施例中,首先,通过初始化一个客户端对象,并为客户端对象设置浏览器属性,可生成虚拟浏览器。获取待测试系统的登录页面的页面地址和用户的登录信息,对登录页面的页面地址和用户的登录信息进行拼接,并对拼接后数据进行哈希运算,可生成第一哈希值作为用户对应的cookie信息的索引。其中,若确定历史cookie信息表中不包括该索引对应的cookie信息,则执行通过虚拟浏览器和页面地址获取对应的html页面对象。进而,在获取到的html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。进一步地,将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。最后,将第一哈希值用户名哈希值和用户对应的cookie信息关联存储在历史cookie信息列表中。采用本申请实施例,可降低接口自动化测试的难度,提高接口自动化测试的效率,适用性高。
请参见图3,图3是本申请实施例提供的数据处理装置的一结构示意图。本申请实施例提供的数据处理装置包括:
数据预处理模块31,用于获取待测试系统的登录页面的页面地址,通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述html页面对象中包括至少两个页面元素;
cookie信息获取模块32,用于在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息,并在登录成功后获取所述用户对应的cookie信息;
接口自动化测试模块33,用于将获取到的所述cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据所述完整的接口请求进行接口自动化测试。
请一并参见图4,图4是本申请实施例提供的数据处理装置的另一结构示意图。其中:
在一种可能的实施方式中,所述数据预处理模块31包括第一预处理单元311,所述第一预处理单元311用于:
初始化一个客户端对象;
为所述客户端对象设置浏览器属性,以生成所述虚拟浏览器。
在一种可能的实施方式中,所述用户的登录信息包括所述用户的用户名和所述用户的登录密码,所述至少两个页面元素包括第一页面元素和第二页面元素;
所述cookie信息获取模块32包括登录处理单元321,所述登录处理单元321用于:
在所述html页面对象中的所述第一页面元素处导入所述用户名,以及在所述html页面对象中的所述第二页面元素处导入所述登录密码。
在一种可能的实施方式中,所述装置还包括登录确认模块34,所述登录确认模块34具体用于:
模拟点击登录操作以触发页面跳转,并获取跳转后的页面对应的页面地址;
若获取到的跳转后的页面对应的页面地址与所述登录页面的页面地址不同,则确定登录成功。
在一种可能的实施方式中,所述cookie信息获取模块32包括cookie信息获取单元322,所述cookie信息获取单元322具体用于:
通过第一命令webClient.getCookies(htmlPage.getDocumentURI())获取跳转后的页面的cookie信息,作为所述用户对应的cookie信息。
在一种可能的实施方式中,所述装置还包括cookie索引确定模块35,所述cookie索引确定模块35具体用于:
获取所述用户的登录信息,对所述登录页面的页面地址和所述用户的登录信息进行拼接,并对拼接后数据进行哈希运算,以生成第一哈希值作为所述用户对应的cookie信息的索引;
所述数据预处理模块31包括第二预处理单元312,所述第二预处理单元312用于:
若确定历史cookie信息表中不包括所述索引对应的cookie信息,则执行通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述历史cookie信息表中包括至少一个索引和每个索引对应的cookie信息。
在一种可能的实施方式中,所述装置还包括cookie信息表更新模块36,所述cookie信息表更新模块36具体用于:
将所述第一哈希值和所述用户对应的cookie信息关联存储在所述历史cookie信息表中。
在本申请实施例中,数据处理装置可获取待测试系统的登录页面的页面地址,通过虚拟浏览器和页面地址获取对应的html页面对象,html页面对象中包括至少两个页面元素。在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。采用本申请实施例,可降低接口自动化测试的难度,提高接口自动化测试的效率,灵活性高,适用范围广。
请参见图5,图5是本申请实施例提供的终端设备的结构示意图。如图5所示,本实施例中的终端设备可以包括:一个或多个处理器401、存储器402和收发器403。上述处理器401、存储器402和收发器403通过总线404连接。存储器402用于存储计算机程序,该计算机程序包括程序指令,处理器401和收发器403用于执行存储器402存储的程序指令,执行如下操作:
收发器403,用于获取待测试系统的登录页面的页面地址;
处理器401,用于通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述html页面对象中包括至少两个页面元素;
处理器401,用于在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息,并在登录成功后获取所述用户对应的cookie信息;
处理器401,用于将获取到的所述cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据所述完整的接口请求进行接口自动化测试。
在一种可能的实施方式中,上述处理器401用于:
初始化一个客户端对象;
为所述客户端对象设置浏览器属性,以生成所述虚拟浏览器。
在一种可能的实施方式中,所述用户的登录信息包括所述用户的用户名和所述用户的登录密码,所述至少两个页面元素包括第一页面元素和第二页面元素;
上述处理器401用于:
在所述html页面对象中的所述第一页面元素处导入所述用户名,以及在所述html页面对象中的所述第二页面元素处导入所述登录密码。
在一种可能的实施方式中,上述处理器401用于:
模拟点击登录操作以触发页面跳转,并获取跳转后的页面对应的页面地址;
若获取到的跳转后的页面对应的页面地址与所述登录页面的页面地址不同,则确定登录成功。
在一种可能的实施方式中,上述处理器401用于:
通过第一命令webClient.getCookies(htmlPage.getDocumentURI())获取跳转后的页面的cookie信息,作为所述用户对应的cookie信息。
在一种可能的实施方式中,上述处理器401用于:
获取所述用户的登录信息,对所述登录页面的页面地址和所述用户的登录信息进行拼接,并对拼接后数据进行哈希运算,以生成第一哈希值作为所述用户对应的cookie信息的索引;
上述处理器401还用于:
若确定历史cookie信息表中不包括所述索引对应的cookie信息,则执行通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述历史cookie信息表中包括至少一个索引和每个索引对应的cookie信息。
在一种可能的实施方式中,上述处理器401还用于:
将所述第一哈希值和所述用户对应的cookie信息关联存储在所述历史cookie信息表中。
应当理解,在一些可行的实施方式中,上述处理器401可以是中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该存储器402可以包括只读存储器和随机存取存储器,并向处理器401提供指令和数据。存储器402的一部分还可以包括非易失性随机存取存储器。例如,存储器402还可以存储设备类型的信息。
具体实现中,上述终端设备可通过其内置的各个功能模块执行如上述图1至图2中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
在本申请实施例中,终端设备可获取待测试系统的登录页面的页面地址,通过虚拟浏览器和页面地址获取对应的html页面对象,html页面对象中包括至少两个页面元素。在html页面对象中的至少两个页面元素中导入用户的登录信息,并在登录成功后获取用户对应的cookie信息。将获取到的cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据完整的接口请求进行接口自动化测试。采用本申请实施例,可降低接口自动化测试的难度,提高接口自动化测试的效率,灵活性高,适用范围广。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图1至图2中各个步骤所提供的数据处理方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述终端设备的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smartmedia card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请的权利要求书和说明书及附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法包括:
获取待测试系统的登录页面的页面地址,通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述html页面对象中包括至少两个页面元素;
在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息,并在登录成功后获取所述用户对应的cookie信息;
将获取到的所述cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据所述完整的接口请求进行接口自动化测试。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
初始化一个客户端对象;
为所述客户端对象设置浏览器属性,以生成所述虚拟浏览器。
3.根据权利要求1所述的方法,其特征在于,所述用户的登录信息包括所述用户的用户名和所述用户的登录密码,所述至少两个页面元素包括第一页面元素和第二页面元素;
所述在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息,包括:
在所述html页面对象中的所述第一页面元素处导入所述用户名,以及在所述html页面对象中的所述第二页面元素处导入所述登录密码。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息之后,所述方法还包括:
模拟点击登录操作以触发页面跳转,并获取跳转后的页面对应的页面地址;
若获取到的跳转后的页面对应的页面地址与所述登录页面的页面地址不同,则确定登录成功。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述获取所述用户对应的cookie信息,包括:
通过第一命令webClient.getCookies(htmlPage.getDocumentURI())获取跳转后的页面的cookie信息,作为所述用户对应的cookie信息。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述通过虚拟浏览器和所述页面地址获取对应的html页面对象之前,所述方法还包括:
获取所述用户的登录信息,对所述登录页面的页面地址和所述用户的登录信息进行拼接,并对拼接后数据进行哈希运算,以生成第一哈希值作为所述用户对应的cookie信息的索引;
所述通过虚拟浏览器和所述页面地址获取对应的html页面对象,包括:
若确定历史cookie信息表中不包括所述索引对应的cookie信息,则执行通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述历史cookie信息表中包括至少一个索引和每个索引对应的cookie信息。
7.根据权利要求6所述的方法,其特征在于,所述根据所述完整的接口请求进行接口自动化测试之后,所述方法还包括:
将所述第一哈希值和所述用户对应的cookie信息关联存储在所述历史cookie信息表中。
8.一种数据处理装置,其特征在于,所述装置包括:
获取待测试系统的登录页面的页面地址,通过虚拟浏览器和所述页面地址获取对应的html页面对象,所述html页面对象中包括至少两个页面元素;
在所述html页面对象中的所述至少两个页面元素中导入用户的登录信息,并在登录成功后获取所述用户对应的cookie信息;
将获取到的所述cookie信息导入接口请求的请求头中,生成完整的接口请求,并根据所述完整的接口请求进行接口自动化测试。
9.一种终端设备,其特征在于,包括处理器、存储器和收发器,所述处理器、所述存储器和所述收发器相互连接;
所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器和所述收发器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN202110705311.8A 2021-06-24 2021-06-24 数据处理方法、装置、终端设备以及存储介质 Pending CN113268684A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110705311.8A CN113268684A (zh) 2021-06-24 2021-06-24 数据处理方法、装置、终端设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110705311.8A CN113268684A (zh) 2021-06-24 2021-06-24 数据处理方法、装置、终端设备以及存储介质

Publications (1)

Publication Number Publication Date
CN113268684A true CN113268684A (zh) 2021-08-17

Family

ID=77235794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110705311.8A Pending CN113268684A (zh) 2021-06-24 2021-06-24 数据处理方法、装置、终端设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113268684A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113947380A (zh) * 2021-10-21 2022-01-18 广东电网有限责任公司 一种etc发票的自动汇总方法及装置
CN114936151A (zh) * 2022-05-05 2022-08-23 北京达佳互联信息技术有限公司 调试页面的显示方法、装置、设备、存储介质及通信系统
CN115514677A (zh) * 2022-09-20 2022-12-23 建信金融科技有限责任公司 服务器拨测方法及系统
CN116150037A (zh) * 2023-04-19 2023-05-23 云账户技术(天津)有限公司 一种在用例中管理用户登录状态的方法及装置
CN117573561A (zh) * 2024-01-15 2024-02-20 成方金融科技有限公司 一种自动化测试系统、方法、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069812B1 (en) * 2014-03-14 2018-09-04 Intuit Inc. Technique for facilitating auto login to a website
CN110955589A (zh) * 2018-09-27 2020-04-03 北京京东尚科信息技术有限公司 基于浏览器的无头模式的测试方法、系统、设备及介质
CN111464594A (zh) * 2020-03-13 2020-07-28 平安国际智慧城市科技股份有限公司 Http接口连接方法、装置及存储介质
CN112711526A (zh) * 2019-10-25 2021-04-27 腾讯科技(深圳)有限公司 Ui测试方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069812B1 (en) * 2014-03-14 2018-09-04 Intuit Inc. Technique for facilitating auto login to a website
CN110955589A (zh) * 2018-09-27 2020-04-03 北京京东尚科信息技术有限公司 基于浏览器的无头模式的测试方法、系统、设备及介质
CN112711526A (zh) * 2019-10-25 2021-04-27 腾讯科技(深圳)有限公司 Ui测试方法、装置、设备及存储介质
CN111464594A (zh) * 2020-03-13 2020-07-28 平安国际智慧城市科技股份有限公司 Http接口连接方法、装置及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113947380A (zh) * 2021-10-21 2022-01-18 广东电网有限责任公司 一种etc发票的自动汇总方法及装置
CN114936151A (zh) * 2022-05-05 2022-08-23 北京达佳互联信息技术有限公司 调试页面的显示方法、装置、设备、存储介质及通信系统
CN115514677A (zh) * 2022-09-20 2022-12-23 建信金融科技有限责任公司 服务器拨测方法及系统
CN115514677B (zh) * 2022-09-20 2023-06-20 建信金融科技有限责任公司 服务器拨测方法及系统
CN116150037A (zh) * 2023-04-19 2023-05-23 云账户技术(天津)有限公司 一种在用例中管理用户登录状态的方法及装置
CN116150037B (zh) * 2023-04-19 2023-07-21 云账户技术(天津)有限公司 一种在用例中管理用户登录状态的方法及装置
CN117573561A (zh) * 2024-01-15 2024-02-20 成方金融科技有限公司 一种自动化测试系统、方法、电子设备和存储介质
CN117573561B (zh) * 2024-01-15 2024-04-26 成方金融科技有限公司 一种自动化测试系统、方法、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN113268684A (zh) 数据处理方法、装置、终端设备以及存储介质
US9977904B2 (en) Systems and methods for automated detection of application vulnerabilities
EP3992800A1 (en) Program test method and apparatus, computer device, and storage medium
CN113238850B (zh) 基于浏览器的rpa实现方法、装置、设备及介质
US9063766B2 (en) System and method of manipulating virtual machine recordings for high-level execution and replay
CN110096424B (zh) 测试的处理方法、装置、电子设备及存储介质
US9178746B2 (en) Browser-based fetch of external libraries
CN109388569B (zh) 远程检测客户端环境异常的方法、测试服务器及存储介质
US11436131B2 (en) Systems and methods for software testing using a disposable code
US20170286081A1 (en) Silent Installation of Software with Dependencies
CN112799940A (zh) 回归测试方法、装置、计算机系统和计算机可读存储介质
US9021596B2 (en) Correcting workflow security vulnerabilities via static analysis and virtual patching
CN108121650B (zh) 一种对于页面用户界面的测试方法及装置
CN113535567B (zh) 软件测试方法、装置、设备和介质
CN112631915B (zh) 一种pcie设备软件仿真的方法、系统、设备及介质
CN112988588A (zh) 客户端软件调试方法、装置、存储介质及电子设备
CN111930629A (zh) 页面测试方法、装置、电子设备及存储介质
CN114385258B (zh) 自动化测试方法、装置、电子设备及存储介质
CN105930273A (zh) 一种移动应用自动化安全测试平台
US9720807B2 (en) Using core files to develop diagnostic programs
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN114489698A (zh) 应用程序安装方法和装置
CN113434217A (zh) 漏洞扫描方法、装置、计算机设备及介质
CN113220586A (zh) 一种自动化的接口压力测试执行方法、装置和系统
CN112506781A (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