Web应用程序的测试方法和装置与流程

文档序号:13332059阅读:262来源:国知局
Web应用程序的测试方法和装置与流程

本发明涉及互联网技术领域,特别是涉及一种web应用程序的测试方法和装置。



背景技术:

随着互联网技术的发展,涌现出多种web(网页)应用程序,例如论坛、微博和虚拟空间等。用户通过浏览器可以访问web应用程序的页面。浏览器对页面中引入的静态资源做本地缓存,当再次打开该页面时,浏览器可以直接使用缓存中的静态资源,不需要再次通过网络去下载新的静态资源。

web应用程序通常会有频繁的迭代更新,当需要对web应用程序进行更新时,web应用程序中的静态资源会相应的进行更新。对web应用程序进行测试时,如果浏览器缓存中的静态资源是更新前的,那么加载出的页面就不是测试人员所需要的页面,给测试人员造成不便,同时降低了测试效率。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够方便快捷的对web应用程序进行测试并且能够有效提高测试效率的web应用程序的测试方法和装置。

一种web应用程序的测试方法,所述方法包括:

接收页面打开请求,根据所述页面打开请求获取预先设置的域名;

向服务器发送对所述域名中的静态资源添加时间戳的请求;

根据所述页面打开请求从服务器中拉取添加时间戳后的静态资源;

加载所述添加时间戳后的静态资源,得到web应用程序对应的测试页面。

在其中一个实施例中,在所述得到web应用程序对应的测试页面之后,还包括:

获取在测试页面中输入的表单数据,将所述表单数据保存至本地;

当再次加载所述测试页面时,接收填入指令;

根据所述填入指令将保存在本地的表单数据填入对应的表单中。

在其中一个实施例中,在所述得到web应用程序对应的测试页面之后,还包括:

接收导入指令;

根据所述导入指令导入脚本程序;

利用所述脚本程序在多个测试页面中填入表单数据,并且执行多个测试页面中的相应操作,对web应用程序进行自动测试。

在其中一个实施例中,在所述根据所述页面打开请求从服务器中拉取添加时间戳后的静态资源之后,还包括:

将所述添加时间戳后的静态资源缓存至本地;

响应鼠标右键操作或者预设快捷键操作,展示快捷菜单,所述快捷菜单中包括清除缓存快捷选项;

响应对所述清除缓存快捷选项的点击操作,将本地缓存的添加时间戳后的静态资源进行清除。

在其中一个实施例中,在所述得到web应用程序对应的测试页面之后,还包括:

获取浏览器与服务器之间传输的接口数据;

判断所述接口数据中是否包括恶意代码的预设字符或预设字符串;

若是,则生成对应的提示信息,并展示所述提示信息。

在其中一个实施例中,所述接口数据包括个人信息,在所述获取浏览器与服务器之间传输的接口数据之后,还包括:

判断所述个人信息中是否包括掩码字符;

若否,则生成对应的提示信息,并展示所述提示信息。

在其中一个实施例中,在所述获取浏览器与服务器之间传输的接口数据之后,还包括:

统计浏览器多个接口在预设时间段内的响应时间;

将响应时间超出预设值的接口确定为慢接口,生成慢接口记录;

将所述慢接口记录发送至服务器。

一种web应用程序的测试装置,所述装置包括:

接收模块,用于接收页面打开请求;

获取模块,用于根据所述页面打开请求获取预先设置的域名;

发送模块,用于向服务器发送对所述域名中的静态资源添加时间戳的请求;

所述获取模块还用于根据所述页面打开请求从服务器中拉取添加时间戳后的静态资源;

加载模块,用于加载所述添加时间戳后的静态资源,得到web应用程序对应的测试页面。

在其中一个实施例中,所述获取模块还用于获取在测试页面中输入的表单数据;

所述装置还包括:

保存模块,用于将所述表单数据保存至本地;

所述接收模块还用于当再次加载所述测试页面时,接收填入指令;

填入模块,用于根据所述填入指令将保存在本地的表单数据填入对应的表单中。

在其中一个实施例中,所述接收模块还用于接收导入指令;

所述装置还包括:

导入模块,用于根据所述导入指令导入脚本程序;利用所述脚本程序在多个测试页面中填入表单数据,并且执行多个测试页面中的相应操作,对web应用程序进行自动测试。

上述web应用程序的测试方法和装置,在接收到页面打开请求之后,会根据页面打开请求获取预先设置的域名,并且向服务器发送对该域名中的静态资源添加时间戳的请求,以此使得服务器对该域名中的静态资源添加时间戳。在服务器中拉取到添加时间戳后的静态资源,直接加载添加时间戳后的静态资源,由此得到web应用程序对应的测试页面。在整个过程中,所加载的静态资源并不是从浏览器缓存中获取的,而是直接从服务器拉取的,并且从服务器拉取的静态资源添加了时间戳,能够确保每次都能从服务器拉取到最新的静态资源。从而在web应用程序测试时,能够方便快捷的得到所需的测试页面,并且能够有效提高测试效率。

附图说明

图1为一个实施例中web应用程序的测试方法的应用环境图;

图2为一个实施例中web应用程序的测试方法的流程图;

图3为一个实施例中测试页面的示意图;

图4为一个实施例中快捷菜单的示意图;

图5为一个实施例中测试终端的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在一个实施例中,如图1所示,提供了一种web应用程序的测试方法的应用环境中。测试终端102通过网络与服务器104连接。测试终端102中运行了浏览器和浏览器插件。服务器104中运行了web应用程序。测试人员通过浏览器打开web应用程序对应的测试页面时,浏览器获取预先设置的域名。浏览器插件根据预先设置的域名生成对域名中的静态资源添加时间戳的请求。浏览器向服务器104发送对域名中的静态资源添加时间戳的请求。服务器104接收对域名中的静态资源添加时间戳的请求,并根据该请求对该域名中的静态资源添加对应的时间戳。浏览器在服务器104中拉取添加时间戳后的静态资源,并且加载添加时间戳后的静态资源,在测试终端102显示web应用程序对应的测试页面。

在一个实施例中,如图2所示,提供了一种web应用程序的测试方法,以该方法应用于测试终端为例进行说明,具体包括:

202,接收页面打开请求,根据页面打开请求获取预先设置的域名。

测试终端中运行了浏览器和浏览器插件。其中,浏览器可以是支持chrome(一种浏览器)内核的多种浏览器。浏览器插件可以预先安装到测试终端。浏览器插件依托于浏览器来实现其功能。

测试人员通过浏览器打开web应用程序对应的测试页面时,浏览器获取预先设置的域名。预先设置的域名是指需要测试的web应用程序对应的域名。测试人员可以通过浏览器插件进行设置。预先设置的域名可以视为web应用测试对应的白名单。

204,向服务器发送对域名中的静态资源添加时间戳的请求。

静态资源是指页面中引用的css(cascadingstylesheets,层叠样式表,一种计算机语言)文件、javascript(一种直译式脚本语言)文件和css文件需要的图片、视频等文件。页面包括html(hypertextmarkuplanguage,超级文本标记语言)页面、web页面和.net(一种计算机语言)页面等,其中,html页面可以是html5(html第五版)页面。

浏览器插件根据预先设置的域名生成对域名中的静态资源添加时间戳的请求。浏览器向服务器发送对域名中的静态资源添加时间戳的请求。服务器接收对域名中的静态资源添加时间戳的请求,并根据该请求对该域名中的静态资源添加对应的时间戳。时间戳可以是浏览器向服务器发送对域名中的静态资源添加时间戳的请求的时间,也可以是服务器接收到对域名中的静态资源添加时间戳的请求的时间,也可以是静态资源更新的时间,还可以是静态资源的版本号等。域名中的静态资源是web应用程序更新后对应的静态资源。通过对静态资源添加时间戳,可以确保浏览器从服务器中拉取到最新的静态资源。

206,根据页面打开请求从服务器中拉取添加时间戳后的静态资源。

208,加载添加时间戳后的静态资源,得到web应用程序对应的测试页面。

浏览器根据页面打开请求从服务器上拉取添加时间戳后的静态资源,并且加载添加时间戳后的静态资源,由此得到web应用程序对应的测试页面。由于浏览器每次都是从服务器上拉取添加时间戳后的静态资源,因此可以拉取到最新的静态资源,加载出web应用程序对应的最新的测试页面。

本实施例中,在接收到页面打开请求之后,会根据页面打开请求获取预先设置的域名,并且向服务器发送对该域名中的静态资源添加时间戳的请求,以此使得服务器对该域名中的静态资源添加时间戳。在服务器中拉取到添加时间戳后的静态资源,直接加载添加时间戳后的静态资源,由此得到web应用程序对应的测试页面。在整个过程中,所加载的静态资源并不是从浏览器缓存中获取的,而是直接从服务器拉取的,并且从服务器拉取的静态资源添加了时间戳,能够确保每次都能从服务器拉取到最新的静态资源。从而在web应用程序测试时,能够方便快捷的得到所需的测试页面,并且能够有效提高测试效率。

在一个实施例中,在得到web应用程序对应的测试页面之后,还包括:获取在测试页面中输入的表单数据,将表单数据保存至本地;当再次加载测试页面时,接收填入指令;根据填入指令将保存在本地的表单数据填入对应的表单中。

本实施例中,表单是指网页上用于输入和选择信息的文本框、列表框和其他域。当用户对表单进行操作时,例如,用户注册、登录、信息提交以及查询等,可以实现用户与web应用程序之间的交互。

浏览器插件安装之后,在测试页面中显示多个操作控件,包括保存、填入、删除和导入等。如图3所示,多个操作控件显示在测试页面的右下角。测试人员在测试页面中对表单进行操作,输入表单数据。浏览器插件获取表单数据,接收测试人员通过测试终端点击保存控件,发出保存指令,浏览器插件接收保存指令,并根据保存指令将表单数据保存至本地。当再次加载该测试页面时,浏览器插件接收测试人员通过测试终端点击填入控件,发出填入指令,浏览器插件接收填入指令,根据填入指令获取保存在本地的表单数据,并将表单数据填入对应的表单中。

传统的浏览器插件也可以对表单数据自动保存至浏览器缓存,当用户在页面中输入表单数据时,如果用户本次输入的表单数据与之前保存的表单数据相同,则浏览器插件会提示用户是否输入之前保存的表单数据,并且是从浏览器缓存中获取之前保存的表单数据。由于浏览器缓存的路径复杂,对之前保存的表单数据进行删除操作会造成不便。

本实施例中,当测试页面再次被加载时,测试人员在测试页面中无需再次输入表单数据,浏览器插件接收到填入指令后,即可根据填入指令获取保存在本地的表单数据,并将表单数据填入对应的表单中。由此使得表单数据的填入操作更加简捷,从而进一步提高了web应用程序的测试效率。

在测试页面中输入的表单数据时,浏览器插件需要接收到保存指令后,才会对表单数据进行保存,并且是保存在本地。保存在本地的路径可以预先设置,由此方便会表单数据进行查询或删除等操作。此外,如果在测试页面中需要输入新的表单数据,测试人员可以点击删除控件,发出删除指令,浏览器插件接收删除指令,根据删除指令将保存在本地的表单数据快速进行删除。

进一步的,测试页面再次被加载时,如果本次需要输入的表单数据与保存在本地的表单数据部分相同,测试人员也可以手动对表单数据进行修改。

在一个实施例中,在得到web应用程序对应的测试页面之后,还包括:接收导入指令;根据导入指令导入脚本程序;利用脚本程序在多个测试页面中填入表单数据,并且执行多个测试页面中的相应操作,对web应用程序进行自动测试。

本实施例中,在测试完web应用程序对应的测试页面正常显示之后,可以在多个测试页面中连续自动填入表单数据。具体的,测试人员通过测试终端点击图3中所示的导入控件,发出导入指令,浏览器插件接收导入指令,将预先写好的脚本程序进行导入。利用该脚本程序在多个测试页面中自动填入表单数据,并且可以执行多个页面中的相应操作。例如,在用户登录的测试页面,脚本程序可以在表单中填入用户登录信息,并执行登录操作。登录成功之后,在转账页面,脚本程序可以在表达中填入转账金额和转账密码,并执行提交操作。提交成功,则显示转账后的页面。由此,完成web应用程序的自动测试。在多个测试页面中,测试人员不需要手动输入表单数据,通过脚本程序来自动填入表单数据,实现对web应用程序的自动测试。由此进一步提高了测试效率。

在一个实施例中,在根据页面打开请求从服务器中拉取添加时间戳后的静态资源之后,还包括:将添加时间戳后的静态资源缓存至本地;响应鼠标右键操作或者预设快捷键操作,展示快捷菜单,快捷菜单中包括清除缓存快捷选项;响应对清除缓存快捷选项的点击操作,将本地缓存的添加时间戳后的静态资源进行清除。

本实施例中,浏览器根据页面打开请求从服务器中拉取添加时间戳后的静态资源之后,会将添加时间戳后的静态资源缓存至本地。测试人员单击鼠标右键,或者按下键盘中的预设快捷键,浏览器插件响应鼠标右键操作或者预设快捷键操作,展示快捷菜单,如图4所示。快捷菜单中显示有多个快捷选项,其中包括清除缓存快捷选项。测试人员点击清除缓存快捷选项,浏览器插件响应对清除缓存快捷选项的点击操作,将本地缓存的添加时间戳后的静态资源进行快速清除。如果想删除传统的浏览器缓存中的静态资源,需要在任务栏中找到internet选项,打开internet属性的窗口,在该窗口中手动删除浏览器缓存中的静态资源。本实施例中,由于在快捷菜单中添加了清除缓存快捷选项,因此只需点击清除缓存快捷选项,即可将本地缓存的添加时间戳后的静态资源进行快速清除,操作简洁,给测试人员带来了方便。

传统的方式,如果利用测试软件在测试页面中自动填入表单数据,测试软件非常庞大,会占用测试终端较多的资源。本实施例中,浏览器插件的大小比传统的测试软件要小,利用浏览器插件来执行多个测试页面的表单数据自动填入,不需要占用测试终端较多的资源。而且浏览器插件在在多个测试页面中填入表单数据时,如果发现异常,可以弹框提示。该弹框可以与web应用程序共用,可以视为web应用程序的一部分。

在一个实施例中,在得到web应用程序对应的测试页面之后,还包括:获取浏览器与服务器之间传输的接口数据;判断接口数据中是否包括恶意代码的预设字符或预设字符串;若是,则生成对应的提示信息,并展示提示信息。

本实施例中,浏览器插件获取浏览器的多个接口,并且获取浏览器与服务器之间通过多个接口传输的接口数据。接口数据可以是浏览器上传至服务器的接口数据,也可以是浏览器从服务器中拉取到的接口数据。浏览器插件判断接口数据中是否包括恶意代码的预设字符或预设字符串。恶意代码是指对会带来危险的代码。例如,恶意代码为xss攻击(又称为crosssitescript,简称css,跨站脚本攻击),则预设字符可以是尖括号或者引号等。若接口数据中包括恶意代码,则表示存在一定的风险,浏览器插件生成对应的提示信息,并将提示信息进行展示。提示信息可以弹框的形式进行展示。例如,在测试页面的右下角弹框展示提示信息。通过检测接口数据中是否包括恶意代码的预设字符或预设字符串,从而在测试过程中及时发现安全漏洞,有效提高了web应用程序的安全性。

进一步的,当接口数据为浏览器上传至服务器的接口数据时,如果浏览器插件在判断出接口数据中包括恶意代码的预设字符或者预设字符串,浏览器插件对接口数据进行拦截,并且生成对应的提示信息。

在一个实施例中,接口数据包括个人信息,在获取浏览器与服务器之间传输的接口数据之后,还包括:判断个人信息中是否包括掩码字符;若否,则生成对应的提示信息,并展示提示信息。

本实施例中,浏览器插件除了检测接口数据中是否包括恶意代码之外,还会对接口数据中的个人信息进行检测。个人信息包括姓名、证件号码、联系电话、银行账号等。具体的,浏览器插件获取接口数据中的个人信息,判断个人信息中是否包括掩码字符。利用掩码字符可以对个人信息中的部分内容进行屏蔽,以防止用户的个人信息被泄露,保护用户的个人隐私。例如,掩码字符可以是*等。如果个人信息中未包括掩码字符,则生成对应的提示信息,并展示该提示信息。提示信息可以弹框的形式进行展示。例如,在测试页面的右下角弹框展示提示信息。通过检测个人信息中是否包括掩码字符,因此能够及时发现个人信息被泄露的风险,有效提高了web应用程序的安全性。

进一步的,当接口数据为浏览器上传至服务器的接口数据时,浏览器插件在判断出个人信息中未包括掩码字符,浏览器插件对个人信息进行拦截,并且生成对应的提示信息。

在一个实施例中,在获取浏览器与服务器之间传输的接口数据之后,还包括:统计浏览器多个接口在预设时间段内的响应时间;将响应时间超出预设值的接口确定为慢接口,生成慢接口记录;将慢接口记录发送至服务器。

本实施例中,浏览器插件获取浏览器的多个接口,获取浏览器与服务器之间通过多个接口传输的接口数据,并且浏览器插件会统计多个接口在预设时间段内的响应时间。预设时间段可以是一周或者一天等。浏览器插件对多个接口的响应时间进行排序,将响应时间超出预设值的接口作为慢接口,并对慢接口进行记录,生成慢接口记录。浏览器将慢接口记录发送至服务器。由此能够帮助开发人员对浏览器接口及时进行改善,由此提高web应用程序的性能。

在一个实施例中,如图5所示,提供了一种测试终端,包括通过系统总线连接的处理器、内存储器、非易失性存储介质、网络接口、显示屏以及输入装置。该终端的非易失性存储介质中存储有一种web应用程序的测试装置,用于实现方便快捷的对web应用程序进行测试。该测试终端的处理器用于提供计算和控制能力,被配置为执行一种web应用程序的测试方法。该终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,该终端的输入装置可以是外接的键盘、触控板或鼠标等。该终端可以是台式计算机,也可以个人笔记本电脑。

在一个实施例中,提供了一种web应用程序的测试装置,包括:接收模块、获取模块、发送模块和加载模块,其中:

接收模块,用于接收页面打开请求。

获取模块,用于根据页面打开请求获取预先设置的域名。

发送模块,用于向服务器发送对域名中的静态资源添加时间戳的请求。

获取模块还用于根据页面打开请求从服务器中拉取添加时间戳后的静态资源。

加载模块,用于加载添加时间戳后的静态资源,得到web应用程序对应的测试页面。

在一个实施例中,获取模块还用于获取在测试页面中输入的表单数据;该装置还包括:保存模块和填入模块,其中:

保存模块,用于将表单数据保存至本地。

接收模块还用于当再次加载测试页面时,接收填入指令。

填入模块,用于根据填入指令将保存在本地的表单数据填入对应的表单中。

在一个实施例中,接收模块还用于接收导入指令;该装置还包括:导入模块,用于根据导入指令导入脚本程序;利用脚本程序在多个测试页面中填入表单数据,并且执行多个测试页面中的相应操作,对web应用程序进行自动测试。

在一个实施例中,该装置还包括:缓存模块、快捷响应模块和删除模块,其中:

缓存模块,用于将添加时间戳后的静态资源缓存至本地。

快捷响应模块,用于响应鼠标右键操作或者预设快捷键操作,展示快捷菜单,快捷菜单中包括清除缓存快捷选项。

删除模块,用于响应对清除缓存快捷选项的点击操作,将本地缓存的添加时间戳后的静态资源进行清除。

在一个实施例中,获取模块还用于获取浏览器与服务器之间传输的接口数据;该装置还包括:判断模块和提示模块,其中:

判断模块,用于判断接口数据中是否包括恶意代码的预设字符或预设字符串。

提示模块,用于若接口数据中包括恶意代码的预设字符或预设字符串,则生成对应的提示信息,并展示提示信息。

在一个实施例中,接口数据包括个人信息,判断模块还用于判断个人信息中是否包括掩码字符;提示模块还用于若个人信息中未包括掩码字符,则生成对应的提示信息,并展示提示信息。

在一个实施例中,该装置还包括:统计模块和记录模块,其中:

统计模块,用于统计浏览器多个接口在预设时间段内的响应时间。

记录模块,用于将响应时间超出预设值的接口确定为慢接口,生成慢接口记录。

发送模块还用于将慢接口记录发送至服务器。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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