CN110334023A - 一种应用于网站的测试流程确定方法和装置 - Google Patents

一种应用于网站的测试流程确定方法和装置 Download PDF

Info

Publication number
CN110334023A
CN110334023A CN201910576391.4A CN201910576391A CN110334023A CN 110334023 A CN110334023 A CN 110334023A CN 201910576391 A CN201910576391 A CN 201910576391A CN 110334023 A CN110334023 A CN 110334023A
Authority
CN
China
Prior art keywords
account
global variable
test
assignment
testing process
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
Application number
CN201910576391.4A
Other languages
English (en)
Other versions
CN110334023B (zh
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.)
JD Digital Technology Holdings Co Ltd
Original Assignee
JD Digital Technology Holdings 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 JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN201910576391.4A priority Critical patent/CN110334023B/zh
Publication of CN110334023A publication Critical patent/CN110334023A/zh
Application granted granted Critical
Publication of CN110334023B publication Critical patent/CN110334023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种应用于网站的测试流程确定方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;通过预设赋值规则,利用测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与测试账号和赋值后的全局变量相对应的测试流程。该实施方式利用登录账号和全局变量调用不同的流程脚本进行自动化测试,安全性较高;全程依赖JS/jquery语言执行,不需要有其他代码能力,不会对程序/网站原有代码产生影响。

Description

一种应用于网站的测试流程确定方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用于网站的测试流程确定方法和装置。
背景技术
随着互联网行业的不断扩展,Web网站已经被广泛使用,采用手工测试软件已经不能适应日益复杂的业务需求。相对于人工而言,采用自动化测试技术能够更好地保证测试的准确度,提高测试效率。
在Web自动化测试过程中,常见的做法就是用户接口(UI,User Interface)驱动方式,以指导网页自动执行预设的操作。但由于系统全流程测试繁琐且耗时,导致工作人员所投入的精力和时间越来越多,造成人工成本较高。如何将工作人员从重复且繁琐的回归测试中解脱出来,是本领域所考虑的一个问题。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
1)常用的测试工具,例如selenium和QTP,都要求工作人员具有较强的编写代码能力;
2)Selenium支持IE、Firefox、Safari和Opera等浏览器,QTP支持IE和Firefox浏览器,两者都没有完全的跨浏览器支持服务,而测试代码在不同的浏览器上运行是需要适应性修改的;
3)Selenium和QTP需要搭建测试环境,且对系统执行环境要求较高;例如QTP只能在windows上运行,且购买费用较高;
4)JS是目前Web网站常用的一种语言,但目前没有一套安全可靠的基于JS/jquery(一个快速、简洁的JavaScript框架)的UI自动化执行方案。
发明内容
有鉴于此,本发明实施例提供一种应用于网站的测试流程确定方法和装置,至少能够解决现有技术中自动化测试工具成本高、对工作人员代码能力要求较高的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用于网站的测试流程确定方法,包括:
接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程。
可选的,所述接收对待测网站中测试账号的输入,包括:
接收对所述待测网站中账号的输入,若在所述待测网站的测试账号记录中查询到所述账号,则确定所述账号为测试账号。
可选的,在所述得到赋值后的全局变量之后,还包括:
通过预设加密规则,对所述赋值后的全局变量进行加密,得到加密后的全局变量;
在所述根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程之前,还包括:
在确定测试流程的过程中,通过预设解密规则,对所述加密后的全局变量进行解密,得到所述赋值后的全局变量。
可选的,在所述确定与所述测试账号和所述赋值后的全局变量相对应的测试流程之后,还包括:
按照所述测试流程中流程环节之间的排序,对与各流程环节相对应的网页进行测试;
记录对各网页的测试信息,组合所记录的测试信息,生成测试日志。
可选的,在所述生成测试日志之后,还包括:
分析所述测试日志,若所述测试流程中最后一个流程环节的测试结果为成功,则确定对所述待测网站的测试结果为成功;
根据自动化脚本的存储路径,对处于所述存储路径中的自动化脚本进行删除操作;其中,所述自动化脚本与所述测试账号、所述赋值后的全局变量和所述测试流程相对应。
可选的,所述方法是基于JavaScript语言进行的。
为实现上述目的,根据本发明实施例的另一方面,提供了一种应用于网站的测试流程确定装置,包括:
账号接收模块,用于接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
变量赋值模块,用于通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
流程确定模块,用于根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程。
可选的,所述账号接收模块,用于:接收对所述待测网站中账号的输入,若在所述待测网站的测试账号记录中查询到所述账号,则确定所述账号为测试账号。
可选的,还包括变量加解密模块,用于:
通过预设加密规则,对所述赋值后的全局变量进行加密,得到加密后的全局变量;
在确定测试流程的过程中,通过预设解密规则,对所述加密后的全局变量进行解密,得到所述赋值后的全局变量。
可选的,还包括网页测试模块,用于:
按照所述测试流程中流程环节之间的排序,对与各流程环节相对应的网页进行测试;
记录对各网页的测试信息,组合所记录的测试信息,生成测试日志。
可选的,还包括脚本删除模块,用于:
分析所述测试日志,若所述测试流程中最后一个流程环节的测试结果为成功,则确定对所述待测网站的测试结果为成功;
根据自动化脚本的存储路径,对处于所述存储路径中的自动化脚本进行删除操作;其中,所述自动化脚本与所述测试账号和所述测试流程相对应。
可选的,所述装置是基于JavaScript语言进行的。
为实现上述目的,根据本发明实施例的再一方面,提供了一种应用于网站的测试流程确定电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的应用于网站的测试流程确定方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的应用于网站的测试流程确定方法。
根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:为不懂java/python/selenium/vb等代码的工作人员提供了一套安全实施测试方案,且所有工具开源免费,实用性强。所提供的方法,利用登录账号和全局变量调动不同的测试脚本进行自动化测试,全程依赖JS/jquery语言执行,不需要有其他代码能力,整体过程不会对程序/网站原有代码产生影响。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种应用于网站的测试流程确定方法的主要流程示意图;
图2是根据本发明实施例的一种可选的应用于网站的测试流程确定方法的流程示意图;
图3是根据本发明实施例的另一种可选的应用于网站的测试流程确定方法的流程示意图;
图4是根据本发明实施例的又一种可选的应用于网站的测试流程确定方法的流程示意图;
图5是根据本发明实施例的再一种可选的应用于网站的测试流程确定方法的流程示意图;
图6是根据本发明实施例的一种具体地应用于网站的测试流程确定方法的流程示意图;
图7是根据本发明实施例的一种应用于网站的测试流程确定装置的主要模块示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
自动化测试是把人为驱动的测试行为转化为机器执行的一种过程。通常工作人员需根据所设计的测试用例中描述的流程一步步执行测试,并将实际测试结果与期望结果进行比较,以此确定测试成功与否。
虽java、python、vb等语言都可以用作UI自动化测试,但java需要安装jdk、需要开发工具等,python需要依赖很多python库包,vb现在使用率比较低。
JS是一种脚本语言,常用于网页客户端编程,使网页在客户端浏览器中实现更多地动态功能,表现出更加丰富的视觉效果。考虑到java、python、vb只有少数人会,而JS语言工作人员熟知度较高,也更容易学习。如果基于JS语言去编写自动化脚本,可以支持不同浏览器的测试操作,免去了环境搭建、兼容性等问题。因此,本发明主要考虑基于JS脚本的UI自动化测试。
参见图1,示出的是本发明实施例提供的一种应用于网站的测试流程确定方法的主要流程图,包括如下步骤:
S101:接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
S102:通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
S103:根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程。
上述实施方式中,对于步骤S101,网站通常由一个主页和很多个网页构成,对网站的测试工作,通常需在浏览器中进行。
本发明主要基于JS语言进行实施,因此本发明中的浏览器只要能够支持JS语言就可以。目前市面上大部分浏览器都支持JS语言,因此本发明相较于现有技术具有较高普适性。
对于待测网站,可以输入该网站首页的URL地址(Uniform Resource Locator,统一资源定位符)至浏览器中,例如,www.xx.com。若该网址能够在浏览器中正常打开,即表明该浏览器中的JS是可以正常运行的。
在网站上线之前,通常需要对其进行测试。一个网站可能涉及多个功能性网页,而每个网页的功能可能都不同,例如下单网页和支付网页,这两个网页可以同处一个流程中(购买流程),也可以各自独立,下单流程和支付成功流程,因此同一个网页同一时刻可能被不同的流程调用测试。
对于创建网站的企业,内部可能需要多个工作人员分工进行网页创建、流程测试工作;例如工作人员A负责下单流程、B负责支付成功流程,每个人员所能够处理的流程权限不同。
因此,在网站上线之前的测试,开发人员需登录账号对所负责的流程进行测试;例如下单购买流程和放入购物车流程,在选择商品后需要登录自己的账号,才能购买商品或放入购物车中。
但在网站上线之前,也可以进行一次全功能型测试,例如购物流程,此时可以无需进行账号登录操作。另外,若网站功能性单一、实现场景简单,也可以不需要账号登录,直接执行JS脚本进入测试流程。
本发明主要针对于需登录账号的场景。因为登录是一个相对复杂流程(相对于不需要登录),需要单独设置账号(和全局变量)与测试流程之间的对应关系;如果网站不需要登录操作,则只需要设定流程并执行即可,无需要提前设定账号(和全局变量)与流程的关系。
对于步骤S102,全局变量是JS中的一个变量,是在代码的全局范围内生效的。
赋值全局变量之前需对其进行初始化处理:
1)在第一个账号登陆之前,全局变量的初始值为0;
2)在账号A登陆后,全局变量赋值为a(仅为示例),执行A+a对应的购买流程;
3)在购买流程测试完毕后,登陆账号B,但此时的全局变量仍为a;
4)因为根据B+a在JS脚本中查询不到对应的测试流程,因此需对全局变量进行初始化处理,得到0;
5)通过账号B对初始化后的全局变量进行赋值,得到b(仅为示例),并根据B+b确定到放入购物车流程。
需要说明的是,对全局变量进行赋值的规则可以依据工作人员分析网站需求等进行设定,例如对于与账号A对应的全局变量,通过不同的赋值规则,可能得到A、1、123或*等。对全局变量赋值的目的主要用于后续确定测试流程时使用。
对于步骤S103,可以针对每个网页创建JS脚本,每个JS脚本中设有测试账号、全局变量与测试流程之间的对应关系,例如:
规则1:账号A+全局变量值a-->购买流程;
规则2:账号B+全局变量值b-->放入购物车流程;
规则3:账号C+全局变量值c-->搜索商品+咨询商家流程。
一个网站可能对应于多个网页,每一个网页同一时刻可能被不同的测试流程所调用。通过同一网页的多个JS脚本文件,结合登陆账号和全局变量,分析执行的下一步/下一个界面:
1)一个网页仅对应一个JS脚本;例如支付成功界面;
2)一个网页对应多个JS脚本;例如支付网页会被多个流程调用,因此需对该支付网页设置多个JS脚本;
3)多个网页对应于一个JS脚本;例如部分网页的功能唯一,且仅处于一个流程中,因此可以针对这些网页设定一个JS脚本,以降低JS脚本对系统内存的占用量。
本发明在执行网站测试之前,会先将其JS脚本放置在一个固定位置,该固定位置可以为编写JS脚本和执行测试流程的工作人员所知,本发明对其位置不做限制。
需要说明的是,理想情况下一个工作人员只负责一个流程,即一个测试账号只对应于一个测试流程,但实际操作中可能会存在一个测试账号对应于多个测试流程的情况。例如,开发人员C级别较高,与其账号C对应的除了下单流程之外,还有放入购物车流程和支付流程;后续在账号C登录后,所确定的测试流程包括这三个,后续需对这三个流程都进行测试。
上述实施例为不懂java/python/selenium/vb等代码的工作人员提供了一套安全实施测试方案,且所有工具开源免费,实用性强。所提供的方法,通过登录账号和全局变量两个维度确定所调用的测试流程,以增加确定测试流程的复杂度,提高整体执行的安全性。
参见图2,示出的是本发明实施例提供的一种可选的应用于网站的测试流程确定方法的主要流程图,包括如下步骤:
S201:接收对待测网站中账号的输入;
S202:若在所述待测网站的测试账号记录中查询到所述账号,则确定所述账号为测试账号;
S203:执行对全局变量的初始化操作;
S204:通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
S205:根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程。
上述实施方式中,对于步骤S203~S205可参见图1所示描述,在此不再赘述。
上述实施方式中,对于步骤S201和S202,对于待测网站,所接收的账号除了测试账号之外,还可能包括真实用户账号。
例如,网站20点00分上线,工作人员20点01分开始测试,但该时刻也可能会有真实用户访问。因为无法预知真实用户什么时候会访问网站,是否和工作人员同一个时刻访问网站,因此对于所接收的账号需判断是否为测试账号。
同一网站中的登录账号都是唯一的,不会出现多个登录账号是相同的情况;例如用户X的登录账号是13121675681,那么该账号在同一网站系统中只能有一个。
因此,无论是测试账号还是真实用户账号都是唯一的,网站通常也不会专门针对测试设定测试账号格式,针对用户设定用户账号格式。
JS脚本中预先设置有账号和测试流程之间的对应关系,并且该对应关系只针对测试账号。因此,对于网站所接收到的账号,可以在JS脚本(测试账号记录表)中进行查询,判断是否为测试账号:
1)若是真实用户账号,则不执行自动化测试流程;因为自动化JS脚本是代码程序代替人为的操作,若真实用户访问网站,是需要用户根据自己的需求一步步操作的,此时的程序无法预知用户下一步操作,也无法替代用户操作;
2)若是测试账号,可以进行后续测试流程确定阶段:
①查询存在相对应的测试流程;例如测试账号A登录后程序执行下单购买流程、账号B登录程序执行放入购物车流程、账号C登录后执行搜索商品/咨询商家流程;
②查询不存在相对应的测试流程,则不执行自动化测试流程;例如测试账号D,但是预先没有设定与账号D相对应的流程、或设定的流程是不执行JS脚本的,当账号D登录后,不会执行测试流程。
上述实施例所提供的方法,通过JS脚本中的测试账号记录对真实用户账号和测试账号进行区分,以确定是否执行自动化测试流程。
参见图3,示出的是本发明实施例提供的另一种可选的应用于网站的测试流程确定方法的主要流程图,包括如下步骤:
S301:接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
S302:通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
S303:通过预设加密规则,对所述赋值后的全局变量进行加密,得到加密后的全局变量;
S304:在确定测试流程的过程中,通过预设解密规则,对所述加密后的全局变量进行解密,得到所述赋值后的全局变量;
S305:根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程。
上述实施方式中,对于步骤S301可参见图1和图2所示描述,步骤S302和S305可参见图1所示描述,在此不再赘述。
上述实施方式中,对于步骤S303,对全局变量进行加解密的目的是增加判断测试流程的复杂度,不让不法分子轻易得到网站测试的具体实施规则。
例如,初始化后的全局变量为0,当登陆账号A后,对全局变量赋值为a并加密(这个赋值过程是隐藏的,可通过后台加密),得到一个加密后的全局变量。对于不法分子,只能看到一个加密后的字符串,无法得知全局变量已经赋值为a。
对于步骤S304,在判断测试流程时,仍是依赖于登陆账号和全局变量,因此该操作过程中还需要将加密后的字符串进行解密。接上例,解密后的全局变量为a,之后通过账号A+全局变量a,即可确定到购买流程。
同样,不法分子只能看到加密的字符串,而解密后的全局变量a他们是无法得知的。而加密后的全局变量只有企业内部设定赋值规则以及加解密规则的工作人员知道,极大提高了整体安全性。
需要说明的是,对全局变量进行加密和解密的规则都是工作人员根据企业具体项目、实际业务场景等进行设定的,例如AES(Advanced Encryption Standard,高级加密标准)或DES(Data Encryption Algorithm,数据加密算法)或SHA(Secure Hash Algorithm,安全散列算法)等。
若测试流程涉及多个流程环节,即需测试多个网页时,这里的全局变量仅在第一个流程环节对应的网页进行加密,后续流程中的其他网页收到加密后的字符串后直接进行解密操作即可。
上述实施例所提供的方法,在赋值全局变量后对其进行加密,只有在确定测试流程时候才对其解密,防止不法分子了解具体实施规则后进行信息窃取,以此提高整体操作的安全性。
参见图4,示出的是本发明实施例提供的又一种应用于网站的测试流程确定方法的主要流程图,包括如下步骤:
S401:接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
S402:通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
S403:根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程;
S404:按照所述测试流程中流程环节之间的排序,对与各流程环节相对应的网页进行测试;
S405:记录对各网页的测试信息,组合所记录的测试信息,生成测试日志。
上述实施方式中,对于步骤S401~S403可参见图1~图3所示描述,在此不再赘述。
上述实施方式中,对于步骤S404,通过所确定的测试流程,对待测网页进行自动化测试;例如根据工作人员A的账号A确定执行下单流程、根据工作人员B的账号B确定支付成功流程。
一个流程可以包括多个流程环节,每一个流程环节都对应一个单独的网页界面;例如购买流程,涉及有搜索商品界面、选择商品型号界面、下单界面、付款界面以及付款成功界面;例如支付成功流程,仅测试购买流程中的付款界面以及付款成功界面。
不同的测试流程所针对的网页是不同的,但同一网页同一时刻可能会被多个流程所调用,但针对不同的测试流程,该网页可能执行的下一步是不同的。因此对于该网页,仍需要基于其脚本和所接收的账号,确定所需执行的下一步。该过程并不单单针对于如何确定测试流程,流程中的其他网页也需要判断是否执行该流程。
例如购买流程和支付成功流程中,都涉及有付款界面以及付款成功界面:
1)对于支付成功流程,所输入的账号和密码均是正确,则直接进入付款成功界面;
2)但对于购买流程,需要先判断所输入的账号和密码是否正确,然后根据判断结果确定所执行的下一个界面:支付成功和支付失败。
对于步骤S405,记录各网页在测试过程中的信息,以便确定测试成功与否,若测试失败,也便于后期问题定位。若测试成功,则自动进入JS脚本销毁流程,具体参见后续图5所示描述。
上述实施例所提供的方法,依赖JS/jquery语言执行UI自动化测试,不需要有其他代码能力,整体过程不会对程序/网站原有代码产生影响。
参见图5,示出的是本发明实施例提供的再一种可选的应用于网站的测试流程确定方法的主要流程图,包括如下步骤:
S501:接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
S502:通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
S503:根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程;
S504:按照所述测试流程中流程环节之间的排序,对与各流程环节相对应的网页进行测试;
S505:记录对各网页的测试信息,组合所记录的测试信息,生成测试日志;
S506:分析所述测试日志,若所述测试流程中最后一个流程环节的测试结果为成功,则确定对所述待测网站的测试结果为成功;
S507:获取自动化脚本的存储路径,对处于所述存储路径中的自动化脚本进行删除操作;其中,所述自动化脚本与所述测试账号、所述赋值后的全局变量和所述测试流程相对应。
上述实施方式中,对于步骤S501~S503可参见图1~图3所示描述,步骤S504~S505可参见图4所示描述,在此不再赘述。
上述实施方式中,对于步骤S506,分析所生成的测试日志,可以确定执行结果失败与否,具体地,通过判断日志中关键字或其他关键位置来判断是否执行成功。例如,购买流程,最后一个流程环节为支付成功,因此若出现支付成功的文本,则表示购买流程执行成功。
若测试到最后一个流程环节之前某一个环节出现异常情况,对于最后一个流程环节的测试信息可能存在,为0;也可能不存在最后一个流程环节的测试信息,则表示测试结果为失败。
对于步骤S507,针对测试结果可以有不同的后续处理操作:
1)执行成功,则进入JS脚本自动销毁流程,此处是为了安全考虑,防止JS脚本信息外泄;
对于JS脚本,可以在测试网站之前将其放置于工作人员所知的一个位置,并设置一个读取路径,因此在测试成功后,可以根据该路径,直接读取将该位置处的脚本并销毁。
另外,对于自动化脚本的销毁操作,也可以是图1中,若所登录的测试账号不需要执行自动化流程,则进入自动化脚本销毁过程;例如账号D。
2)执行失败,可重复测试:
①重复次数有限,如果超过有限次数后仍执行失败,则使用JS/jquery发送报警提醒,包括每次的测试日志,之后需通过人为介入解决执行失败原因;
②重复次数无限,直至执行成功为止。
需要说明的是,对于失败次数较多的情况,可能是程序或脚本存在问题,需要人为介入分析运行失败原因。该种情况下,通常仍保留JS脚本,以为后续人为分析提供依据和参考,便于快速定位失败原因。待原因定位后,也可以销毁该脚本。
上述实施例所提供的方法,在测试网站结束且测试成功的情况下或者无需测试的环境下,可以对自动化脚本进行自动销毁操作,且自动化脚本放置位置固定,对用户操作和程序的运行无影响,不存在安全性问题。
参见图6,示出的是本发明实施例提供的一具体地应用于网站的测试流程确定方法的主要流程图,包括如下步骤:
S601:接收对待测网站中账号的输入;
S602:若在所述待测网站的测试账号记录中查询到所述账号,则确定所述账号为测试账号;
S603:执行对全局变量的初始化操作,通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
S604:通过预设加密规则,对所述赋值后的全局变量进行加密,得到加密后的全局变量;
S605:在确定测试流程的过程中,通过预设解密规则,对所述加密后的全局变量进行解密,得到所述赋值后的全局变量;
S606:根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程;
S607:按照所述测试流程中流程环节之间的排序,对与各流程环节相对应的网页进行测试;
S608:记录对各网页的测试信息,组合所记录的测试信息,生成测试日志;
S609:分析测试日志,若所述测试流程中最后一个流程环节的测试结果为成功,则表示对所述待测网站的测试结果为成功;
S610:获取自动化脚本的存储路径,对处于所述存储路径中的自动化脚本进行删除操作;其中,所述自动化脚本与所述测试账号、所述赋值后的全局变量和所述测试流程相对应。
本发明实施例所提供的方法,具有以下有益效果:
1)针对不同的登陆账号设有不同的测试流程权限,通过登录账号和全局变量调用不同的测试流程;
2)同一网页同一时刻可能被多个流程所调用,通过网页脚本和账号,可以确定需要执行哪个流程,提高操作的准确性;
3)对全局变量的加解密,提高整体操作复杂性,防止不法分子的信息窃取,提高整体实现安全性;以及为流程中后续页面操作提供了依据;
4)在测试完毕且成功的情况以及无需测试的环境下,进入自动化脚本自动销毁阶段,对程序运行无破坏性;
5)为不懂java/python/selenium/vb等代码的人提供了一套基于JS语言安全实施UI自动化测试的方案,且所有工具开源免费,实用性强。
参见图7,示出了本发明实施例提供的一种应用于网站的测试流程确定装置700的主要模块示意图,包括:
账号接收模块701,用于接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
变量赋值模块702,用于通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
流程确定模块703,用于根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程。
本发明实施装置中,所述账号接收模块701,用于:接收对所述待测网站中账号的输入,若在所述待测网站的测试账号记录中查询到所述账号,则确定所述账号为测试账号。
本发明实施装置还包括变量加解密模块704(图中未标出),用于:
通过预设加密规则,对所述赋值后的全局变量进行加密,得到加密后的全局变量;
在确定测试流程的过程中,通过预设解密规则,对所述加密后的全局变量进行解密,得到所述赋值后的全局变量。
本发明实施装置,还包括网页测试模块705(图中未标出),用于:
按照所述测试流程中流程环节之间的排序,对与各流程环节相对应的网页进行测试;
记录对各网页的测试信息,组合所记录的测试信息,生成测试日志。
本发明实施装置还包括脚本删除模块706(图中未标出),用于:
分析所述测试日志,若所述测试流程中最后一个流程环节的测试结果为成功,则确定对所述待测网站的测试结果为成功;
根据自动化脚本的存储路径,对处于所述存储路径中的自动化脚本进行删除操作;其中,所述自动化脚本与所述测试账号和所述测试流程相对应。
本发明实施装置是基于JavaScript语言进行的。
另外,在本发明实施例中所述的装置具体实施内容,在上面方法中已经详细说明了,故在此重复内容不再说明。
图8示出了可以应用本发明实施例的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805(仅仅是示例)。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的应用于网站的测试流程确定方法一般由服务器805执行,相应地,应用于网站的测试流程确定装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这与所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括账号接收模块、变量赋值模块、流程确定模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,流程确定模块还可以被描述为“根据测试账号和全局变量确定测试流程的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
接收对待测网站中测试账号的输入,根据预设的测试账号与测试流程之间的对应关系,确定与所述测试账号相对应的测试流程;
按照所述测试流程中流程环节之间的排序,对与各流程环节相对应的网页进行测试;
记录对各网页的测试信息,组合所记录的测试信息,生成测试日志。
根据本发明实施例的技术方案,相比现有技术具有以下有益效果:
1)全程通过JS/jquery执行UI自动化测试,不需要有其他代码能力;
2)整个流程对程序代码无侵入破坏,且执行成功后自动销毁脚本,对于用户操作和程序运行无任何影响;
3)通过登录账号和全局变量判断执行的自动化流程,且对全局变量有加解密操作,提高整个实施复杂性,以此提高实施安全性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (9)

1.一种应用于网站的测试流程确定方法,其特征在于,包括:
接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程。
2.根据权利要求1所述的方法,其特征在于,所述接收对待测网站中测试账号的输入,包括:
接收对所述待测网站中账号的输入,若在所述待测网站的测试账号记录中查询到所述账号,则确定所述账号为测试账号。
3.根据权利要求1所述的方法,其特征在于,在所述得到赋值后的全局变量之后,还包括:
通过预设加密规则,对所述赋值后的全局变量进行加密,得到加密后的全局变量;
在所述根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程之前,还包括:
在确定测试流程的过程中,通过预设解密规则,对所述加密后的全局变量进行解密,得到所述赋值后的全局变量。
4.根据权利要求1所述的方法,其特征在于,在所述确定与所述测试账号和所述赋值后的全局变量相对应的测试流程之后,还包括:
按照所述测试流程中流程环节之间的排序,对与各流程环节相对应的网页进行测试;
记录对各网页的测试信息,组合所记录的测试信息,生成测试日志。
5.根据权利要求4所述的方法,其特征在于,在所述生成测试日志之后,还包括:
分析所述测试日志,若所述测试流程中最后一个流程环节的测试结果为成功,则确定对所述待测网站的测试结果为成功;
根据自动化脚本的存储路径,对处于所述存储路径中的自动化脚本进行删除操作;其中,所述自动化脚本与所述测试账号、所述赋值后的全局变量和所述测试流程相对应。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法是基于JavaScript语言进行的。
7.一种应用于网站的测试流程确定装置,其特征在于,包括:
账号接收模块,用于接收对待测网站中测试账号的输入,执行对全局变量的初始化操作;
变量赋值模块,用于通过预设赋值规则,利用所述测试账号对初始化后的全局变量进行赋值,得到赋值后的全局变量;
流程确定模块,用于根据预设的测试账号、全局变量和测试流程之间的对应关系,确定与所述测试账号和所述赋值后的全局变量相对应的测试流程。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201910576391.4A 2019-06-28 2019-06-28 一种应用于网站的测试流程确定方法和装置 Active CN110334023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910576391.4A CN110334023B (zh) 2019-06-28 2019-06-28 一种应用于网站的测试流程确定方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910576391.4A CN110334023B (zh) 2019-06-28 2019-06-28 一种应用于网站的测试流程确定方法和装置

Publications (2)

Publication Number Publication Date
CN110334023A true CN110334023A (zh) 2019-10-15
CN110334023B CN110334023B (zh) 2023-09-26

Family

ID=68143683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910576391.4A Active CN110334023B (zh) 2019-06-28 2019-06-28 一种应用于网站的测试流程确定方法和装置

Country Status (1)

Country Link
CN (1) CN110334023B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104318A (zh) * 2019-12-12 2020-05-05 北京爱奇艺科技有限公司 一种单元测试结果的导出方法、装置及电子设备
CN112685314A (zh) * 2021-01-05 2021-04-20 广州知图科技有限公司 一种JavaScript引擎安全测试方法及测试系统
CN114595139A (zh) * 2020-12-07 2022-06-07 中国移动通信有限公司研究院 任务执行方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018932A1 (en) * 2001-07-21 2003-01-23 International Business Machines Corporation Method and system for performing automated regression tests in a state-dependent data processing system
CN108427642A (zh) * 2018-03-05 2018-08-21 深圳市买买提信息科技有限公司 一种界面中控件测试的方法和装置
CN108563584A (zh) * 2018-05-09 2018-09-21 平安普惠企业管理有限公司 测试数据生成方法、装置、计算机设备及存储介质
CN108563539A (zh) * 2018-03-21 2018-09-21 广州视源电子科技股份有限公司 接口测试方法、服务器、可读存储介质及系统
CN108763076A (zh) * 2018-05-22 2018-11-06 深圳乐信软件技术有限公司 一种软件自动测试方法、装置、设备及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018932A1 (en) * 2001-07-21 2003-01-23 International Business Machines Corporation Method and system for performing automated regression tests in a state-dependent data processing system
CN108427642A (zh) * 2018-03-05 2018-08-21 深圳市买买提信息科技有限公司 一种界面中控件测试的方法和装置
CN108563539A (zh) * 2018-03-21 2018-09-21 广州视源电子科技股份有限公司 接口测试方法、服务器、可读存储介质及系统
CN108563584A (zh) * 2018-05-09 2018-09-21 平安普惠企业管理有限公司 测试数据生成方法、装置、计算机设备及存储介质
CN108763076A (zh) * 2018-05-22 2018-11-06 深圳乐信软件技术有限公司 一种软件自动测试方法、装置、设备及介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104318A (zh) * 2019-12-12 2020-05-05 北京爱奇艺科技有限公司 一种单元测试结果的导出方法、装置及电子设备
CN114595139A (zh) * 2020-12-07 2022-06-07 中国移动通信有限公司研究院 任务执行方法、装置及电子设备
CN112685314A (zh) * 2021-01-05 2021-04-20 广州知图科技有限公司 一种JavaScript引擎安全测试方法及测试系统

Also Published As

Publication number Publication date
CN110334023B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
US11941627B2 (en) Transaction authorization process using blockchain
CN110335037A (zh) 基于区块链和多方安全计算的交易方法、装置及存储介质
CN110334023A (zh) 一种应用于网站的测试流程确定方法和装置
CN103065178B (zh) 一种二维码分享装置、访问装置和分享方法
CN108932194A (zh) 自动化测试方法、装置、系统、介质及电子设备
CN109767200B (zh) 一种电子支付方法、装置、系统和存储介质
CN105631355A (zh) 一种数据处理方法和装置
CN109218368A (zh) 实现Http反向代理的方法、装置、电子设备和可读介质
CN104115117A (zh) 用于安全性测试的单元测试的自动合成
CN106815031A (zh) 内核模块加载方法和装置
CN106911693A (zh) 用于检测网页内容劫持的方法、装置和终端设备
CN109981322A (zh) 基于标签的云资源管理的方法和装置
CN107305528B (zh) 应用测试方法和装置
CN108984202B (zh) 一种电子资源分享方法、装置和存储介质
CN107016074A (zh) 一种网页加载方法及装置
CN107634947A (zh) 限制恶意登录或注册的方法和装置
CN105119928A (zh) 安卓智能终端的数据传输方法、装置及系统
CN107635001A (zh) Web脚本异常处理方法和装置
CN110753020A (zh) 网络请求处理方法和装置
CN109002389A (zh) 页面自动化测试的方法和装置
CN111163094A (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
CN109992495A (zh) 接口测试的方法和装置
CN108880923A (zh) 应用于应用服务器的监控操作请求的方法和装置
CN107067244A (zh) 业务实现方法、支付方法、业务实现装置及支付服务端
CN113162937A (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
CB02 Change of applicant information

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone, 100176

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone, 100176

Applicant before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone, 100176

Applicant after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Beijing Economic and Technological Development Zone, 100176

Applicant before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant