本公开涉及计算机技术领域,特别涉及一种测试方法、装置和计算机可读存储介质。
背景技术:
在日常的软件测试中,需要进行大量的测试以保证软件正常运行。例如,新的页面上线后需要经常对页面进行测试,测试页面是否正常打开等。
在互联网公司中,会开发很多系统和页面,通常由测试人员大量时间去进行测试。
技术实现要素:
发明人发现,现有技术中通常由测试人员人工选取页面,配置测试参数,并且重复进行这些工作,降低了测试效率和准确性。
本公开所要解决的一个技术问题是:如何提高测试效率和准确性。
根据本公开的一些实施例,提供的一种测试方法,包括:读取用户登录信息和待测试对象的地址信息;根据用户登录信息和待测试对象的地址信息,生成访问请求并发送待测试对象对应的服务器;对服务器返回的待测试对象的信息启用断言进行测试;根据断言结果确定待测试对象是否正常。
在一些实施例中,根据用户登录信息和待测试对象的地址信息,生成访问请求包括:创建超文本传输协议http请求;将用户登录信息和待测试对象的地址信息添加至http请求中,以生成访问请求。
在一些实施例中,待测试对象包括待测试页面;对服务器返回的待测试对象的信息启用断言进行测试包括:获取服务器返回的待测试页面的内容信息中的待测试元素;对待测试元素启用第一断言,将待测试元素与第一断言中的预设元素进行匹配,得到第一断言结果。
在一些实施例中,待测试对象包括待测试接口;对服务器返回的待测试对象的信息启用断言进行测试包括:获取服务器返回的待测试接口的信息;对待测试接口的信息启用第二断言,将第二断言中的预设信息与待测试接口的信息进行匹配,得到第二断言结果。
在一些实施例中,待测试对象包括待测试接口;该方法还包括:读取待测试接口对应的参数;根据用户登录信息和待测试对象的地址信息,生成访问请求包括:根据用户登录信息,待测试接口对应的参数和待测试接口的地址信息,生成访问请求。
在一些实施例中,读取用户登录信息和待测试对象的地址信息包括:响应于周期性的定时测试任务的触发,读取用户登录信息和待测试对象的地址信息。
在一些实施例中,还包括:将待测试对象是否正常的测试结果存储至数据库;或者,将待测试对象是否正常的测试结果生成文件并输出。
在一些实施例中,还包括:在待测试对象不正常的情况下,将待测试对象不正常的测试结果发送至预设邮箱。
根据本公开的另一些实施例,提供的一种测试装置,包括:信息读取模块,用于读取用户登录信息和待测试对象的地址信息;请求模块,用于根据用户登录信息和待测试对象的地址信息,生成访问请求并发送待测试对象对应的服务器;测试模块,用于对服务器返回的待测试对象的信息启用断言进行测试;结果生成模块,用于根据断言结果确定待测试对象是否正常。
在一些实施例中,请求模块用于创建超文本传输协议http请求;将用户登录信息和待测试对象的地址信息添加至http请求中,以生成访问请求。
在一些实施例中,待测试对象包括待测试页面;测试模块用于获取服务器返回的待测试页面的内容信息中的待测试元素;对待测试元素启用第一断言,将待测试元素与第一断言中的预设元素进行匹配,得到第一断言结果。
在一些实施例中,待测试对象包括待测试接口;测试模块用于获取服务器返回的待测试接口的信息;对待测试接口的信息启用第二断言,将第二断言中的预设信息与待测试接口的信息进行匹配,得到第二断言结果。
在一些实施例中,待测试对象包括待测试接口;信息读取模块还用于读取待测试接口对应的参数,请求模块用于根据用户登录信息,待测试接口对应的参数和待测试接口的地址信息,生成访问请求。
在一些实施例中,信息读取模块用于响应于周期性的定时测试任务的触发,读取用户登录信息和待测试对象的地址信息。
在一些实施例中,该装置还包括:存储模块,用于将待测试对象是否正常的测试结果存储至数据库;或者,结果输出模块,用于将待测试对象是否正常的测试结果生成文件并输出;或者,通知模块,用于在待测试对象不正常的情况下,将待测试对象不正常的测试结果发送至预设邮箱。
根据本公开的又一些实施例,提供的一种测试装置,包括:处理器;以及耦接至处理器的存储器,用于存储指令,指令被处理器执行时,使处理器执行如前述任意实施例的测试方法。
根据本公开的再一些实施例,提供的一种非瞬时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任意实施例的测试方法。
本公开提出一种自动化的测试方法,通过读取用户登录信息和待测试对象的地址信息,自动生成访问请求并发送至对应的服务器,采用断言方式对服务器返回的待测试对象的信息进行测试,根据断言结果确定待测试对象是否正常。这种自动化的测试方法,可以应用于不同的测试对象,针对不同权限的用户对应的待测试对象的信息进行测试。可以随时启动自动测试,灵活进行改动,提高测试的效率和准确性。并且采用断言的方式,只需要对断言的逻辑进行改动,就能实现测试逻辑的变更,维护成本低。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的测试方法的流程示意图。
图2示出本公开的另一些实施例的测试方法的流程示意图。
图3示出本公开的又一些实施例的测试方法的流程示意图。
图4示出本公开的一些实施例的测试装置的结构示意图。
图5示出本公开的另一些实施例的测试装置的结构示意图。
图6示出本公开的又一些实施例的测试装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提出一种自动化的测试方法,下面结合图1进行描述。
图1为本公开测试方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤s102~s108。
在步骤s102中,读取用户登录信息和待测试对象的地址信息。
待测试对象可以包括:待测试页面,待测试接口中至少一项,可以根据实际需求进行设置。例如,搭建tomcat测试环境,将一个或多个用户登录信息保存在用户信息配置文件中,将一个或多个待测试对象的地址信息保存在对象配置文件中。可以创建用户信息读取类,例如,cookieinformation类,读取用户信息配置文件中的用户登录信息(例如,登录账号和密码)。可以创建对象读取类,例如,readurl类,读取对象配置文件中的待测试对象的地址信息(例如,待测试对象的url(统一资源定位符))。
可以创建测试服务类,例如,starttest类,通过httpclient框架执行测试。用户信息读取类在读取用户登录信息后,可以将读取的用户登录信息进行封装,提供给测试服务类。对象读取类在读取待测试对象的地址信息后,可以将地址信息封装后提供给测试服务类。即测试服务类调用用户信息读取类和对象读取类提供的封装,从而测试服务类读取用户登录信息和待测试对象的地址信息,进行后续的测试方法。
在一些实施例中,响应于周期性的定时测试任务的触发,读取用户登录信息和待测试对象的地址信息。可以利用springquartz配置的定时任务,可以设置任务类,例如task类实现设置定时测试任务,响应于预定时间达到,执行测试服务类中的测试方法。
在步骤s104中,根据用户登录信息和待测试对象的地址信息,生成访问请求并发送待测试对象对应的服务器。
在一些实施例中,可以生产http请求作为访问请求。例如,创建http(超文本传输协议)请求;将用户登录信息和待测试对象的地址信息添加至http请求中,以生成访问请求。
在步骤s106中,对服务器返回的待测试对象的信息启用断言进行测试。
断言是编程术语,表示为一些布尔表达式,可以根据实际需要测试的内容和逻辑,设置断言。
在步骤s108中,根据断言结果确定待测试对象是否正常。
断言会返回布尔表达式的判断结果,true或false。在断言结果为假的情况下,可以确定待测试对象不正常,在断言结果为真的情况下,可以确定待测试对象正常。
上述实施例中,可以同时读取多个用户登录信息和待测试对象的地址信息。并行多个线程执行生成不同的访问请求,进行上述测试的过程。
在一些实施例中,将待测试对象是否正常的测试结果存储至数据库;或者,将待测试对象是否正常的测试结果生成文件并输出。在另一些实施例中,在待测试对象不正常的情况下,将待测试对象不正常的测试结果发送至预设邮箱,以便通知工作人员。待测试对象正常的情况下,也可以将测试结果发送至预设邮箱。
可以创建结果输出类,例如,resultwrite类,将测试结果写入数据库,或作为文件输出,或发送至预设邮箱。测试服务类调用结果输出类将结果解析处理保存数据库,发送邮件相关人员。
上述实施例提出一种自动化的测试方法,通过读取用户登录信息和待测试对象的地址信息,自动生成访问请求并发送至对应的服务器,采用断言方式对服务器返回的待测试对象的信息进行测试,根据断言结果确定待测试对象是否正常。这种自动化的测试方法,可以应用于不同的测试对象,针对不同权限的用户对应的待测试对象的信息进行测试。可以随时启动自动测试,灵活进行改动,提高测试的效率和准确性,不需要人工输入登录信息到不同页面进行重复性繁琐的测试工作。并且采用断言的方式,只需要对断言的逻辑进行改动,就能实现测试逻辑的变更,维护成本低。此外,定时执行自动化测试,减少了测试人员手工测试带来的误差,提高了测试的安全性和稳定性。测试结果入库和发送邮件相关人员,可以留存历史问题,做到问题记录,方便后续跟进;发送邮件可以快速通知相应人员解决问题。
下面分别以待测试对象为待测试页面或待测试接口为例,描述一些实施例。
图2为本公开测试方法另一些实施例的流程图。如图2所示,该实施例的方法包括:步骤s202~s216。
在步骤s202中,响应于周期性的定时测试任务的触发,读取用户登录信息和待测试页面的地址信息。
例如,每天12点出发测试任务,可以参考前述实施例,由测试服务类调用用户信息读取类和对象读取类提供的封装,获取用户登录信息和待测试页面的地址信息。
在步骤s204中,根据用户登录信息和待测试页面的地址信息,生成访问请求并发送待测试页面对应的服务器。
在步骤s206中,获取服务器返回的待测试页面的内容信息中的待测试元素。
待测试页面的内容信息例如为html(超文本标记语言)文件,解析该html文件可以获得待测试页面中包括多的种元素,例如,标题、各个部分的内容等。可以根据需求对不同的待测试元素进行测试,例如,测试页面名称是否正确,文字格式统一性,排版是否整齐,数据加载情况等。
在步骤s208中,对待测试元素启用第一断言,将待测试元素与第一断言中的预设元素进行匹配,得到第一断言结果。
例如,用户登录账号为278011,根据用户登录账号登录后,待测试页面右上角应该显示用户登录账号。如果测试页面中用户登录账号是否正常显示,可以将待测试页面中显示用户登录账号位置的元素作为待测试元素,获取待测试元素例如“name”,启用预先设置断言assertequal(name,“278011”),将获取的待测试元素与278011进行匹配,如果两者相匹配,则断言结果为true,否则为false。
在步骤s210中,根据第一断言结果确定待测试页面是否正常。
在步骤s212中,将待测试页面是否正常的测试结果存储至数据库。
在步骤s214中,将待测试页面是否正常的测试结果生成文件并输出。
在步骤s216中,将待测试页面是否正常的测试结果发送至预设邮箱。
步骤s212~s216可以并列执行,不分先后顺序。
上述实施例的方法实现了对页面的自动测试,可以根据需求定时执行自动化测试,提高测试效率、稳定性和准确率,测试后将测试结果留存,通知工作人员可以及时解决问题,方便后续跟进。
图3为本公开测试方法又一些实施例的流程图。如图3所示,该实施例的方法包括:步骤s302~s316。
在步骤s302中,响应于周期性的定时测试任务的触发,读取用户登录信息、待测试接口对应的参数、和待测试接口的地址信息。
待测试接口对应的参数也可以预先存储在接口参数配置文件中,通过接口参数读取类进行读取封装,测试服务类调用接口参数读取类获取待测试接口对应的参数。
步骤s304中,根据用户登录信息,待测试接口对应的参数和待测试接口的地址信息,生成访问请求并发送待测试接口对应的服务器。
在步骤s306中,获取服务器返回的待测试接口的信息。
例如,待测试接口为优惠券领取接口,服务器返回的待测试接口的信息为{"subcodemsg":"本时段优惠券已抢完,请20:00再来吧!","subcode":"d2","code":"0","msg":null}。
在步骤s308中,对待测试接口的信息启用第二断言,将第二断言中的预设信息与待测试接口的信息进行匹配,得到第二断言结果。
例如,当前时段优惠券已抢完的接口信息可以用“code”为0表示。将上述服务器返回的待测试接口的信息中“code”对应的值与第二断言assertequal(map.key,0)中的预设值0进行匹配,map.key表示获取的code的值,如果两者相匹配,则断言结果为true,否则为false。
在步骤s310中,根据第二断言结果确定待测试接口是否正常。
在步骤s312中,将待测试接口是否正常的测试结果存储至数据库。
在步骤s314中,将待测试接口是否正常的测试结果生成文件并输出。
在步骤s316中,将待测试接口是否正常的测试结果发送至预设邮箱。
步骤s312~s316可以并列执行,不分先后顺序。
上述实施例的方法实现了对接口的自动测试,可以根据需求定时执行自动化测试,提高测试效率、稳定性和准确率,测试后将测试结果留存,通知工作人员可以及时解决问题,方便后续跟进。
本公开还提供一种测试装置,下面结合图4进行描述。
图4为本公开测试装置的一些实施例的结构图。如图4所示,该实施例的装置40包括:信息读取模块410,请求模块420,测试模块430,结果生成模块440。
信息读取模块410,用于读取用户登录信息和待测试对象的地址信息。
在一些实施例中,待测试对象包括待测试接口;信息读取模块410还用于读取待测试接口对应的参数,请求模块用于根据用户登录信息,待测试接口对应的参数和待测试接口的地址信息,生成访问请求。
在一些实施例中,信息读取模块410用于响应于周期性的定时测试任务的触发,读取用户登录信息和待测试对象的地址信息。
请求模块420,用于根据用户登录信息和待测试对象的地址信息,生成访问请求并发送待测试对象对应的服务器。
在一些实施例中,请求模块420用于创建超文本传输协议http请求;将用户登录信息和待测试对象的地址信息添加至http请求中,以生成访问请求。
测试模块430,用于对服务器返回的待测试对象的信息启用断言进行测试。在一些实施例中,待测试对象包括待测试页面;测试模块430用于获取服务器返回的待测试页面的内容信息中的待测试元素;对待测试元素启用第一断言,将待测试元素与第一断言中的预设元素进行匹配,得到第一断言结果。
在一些实施例中,待测试对象包括待测试接口;测试模块430用于获取服务器返回的待测试接口的信息;对待测试接口的信息启用第二断言,将第二断言中的预设信息与待测试接口的信息进行匹配,得到第二断言结果。
结果生成模块440,用于根据断言结果确定待测试对象是否正常。
在一些实施例中,测试装置40还包括:存储模块450,结果输出模块470,通知模块470中至少一项。
存储模块450,用于将待测试对象是否正常的测试结果存储至数据库。
结果输出模块460,用于将待测试对象是否正常的测试结果生成文件并输出。
通知模块470,用于在待测试对象不正常的情况下,将待测试对象不正常的测试结果发送至预设邮箱。
本公开的实施例中的测试装置可各由各种计算设备或计算机系统来实现,下面结合图5以及图6进行描述。
图5为本公开测试装置的一些实施例的结构图。如图5所示,该实施例的装置50包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器110中的指令,执行本公开中任意一些实施例中的测试方法。
其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)、数据库以及其他程序等。
图6为本公开测试装置的另一些实施例的结构图。如图6所示,该实施例的装置60包括:存储器610以及处理器620,分别与存储器510以及处理器520类似。还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口650为sd卡、u盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
技术特征:
1.一种测试方法,包括:
读取用户登录信息和待测试对象的地址信息;
根据所述用户登录信息和所述待测试对象的地址信息,生成访问请求并发送所述待测试对象对应的服务器;
对所述服务器返回的所述待测试对象的信息启用断言进行测试;
根据断言结果确定所述待测试对象是否正常。
2.根据权利要求1所述的测试方法,其中,
所述根据所述用户登录信息和所述待测试对象的地址信息,生成访问请求包括:
创建超文本传输协议http请求;
将所述用户登录信息和所述待测试对象的地址信息添加至所述http请求中,以生成访问请求。
3.根据权利要求1所述的测试方法,其中,
所述待测试对象包括待测试页面;
所述对所述服务器返回的所述待测试对象的信息启用断言进行测试包括:
获取所述服务器返回的所述待测试页面的内容信息中的待测试元素;
对所述待测试元素启用第一断言,将所述待测试元素与所述第一断言中的预设元素进行匹配,得到第一断言结果。
4.根据权利要求1所述的测试方法,其中,
所述待测试对象包括待测试接口;
所述对所述服务器返回的所述待测试对象的信息启用断言进行测试包括:
获取所述服务器返回的所述待测试接口的信息;
对所述待测试接口的信息启用第二断言,将所述第二断言中的预设信息与所述待测试接口的信息进行匹配,得到第二断言结果。
5.根据权利要求1所述的测试方法,其中,
所述待测试对象包括待测试接口;
所述方法还包括:读取所述待测试接口对应的参数;
所述根据所述用户登录信息和所述待测试对象的地址信息,生成访问请求包括:
根据所述用户登录信息,所述待测试接口对应的参数和所述待测试接口的地址信息,生成访问请求。
6.根据权利要求1所述的测试方法,其中,
所述读取用户登录信息和待测试对象的地址信息包括:
响应于周期性的定时测试任务的触发,读取用户登录信息和待测试对象的地址信息。
7.根据权利要求1所述的测试方法,还包括:
将所述待测试对象是否正常的测试结果存储至数据库;
或者,将所述待测试对象是否正常的测试结果生成文件并输出。
8.根据权利要求1所述的测试方法,还包括:
在所述待测试对象不正常的情况下,将所述待测试对象不正常的测试结果发送至预设邮箱。
9.一种测试装置,包括:
信息读取模块,用于读取用户登录信息和待测试对象的地址信息;
请求模块,用于根据所述用户登录信息和所述待测试对象的地址信息,生成访问请求并发送所述待测试对象对应的服务器;
测试模块,用于对所述服务器返回的所述待测试对象的信息启用断言进行测试;
结果生成模块,用于根据断言结果确定所述待测试对象是否正常。
10.根据权利要求9所述的测试装置,还包括:
存储模块,用于将所述待测试对象是否正常的测试结果存储至数据库;
或者,结果输出模块,用于将所述待测试对象是否正常的测试结果生成文件并输出;
或者,通知模块,用于在所述待测试对象不正常的情况下,将所述待测试对象不正常的测试结果发送至预设邮箱。
11.一种测试装置,包括:
处理器;以及
耦接至所述处理器的存储器,用于存储指令,所述指令被所述处理器执行时,使所述处理器执行如权利要求1-8任一项所述的测试方法。
12.一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
技术总结
本公开涉及一种测试方法、装置和计算机可读存储介质,涉及计算机技术领域。本公开的方法包括:读取用户登录信息和待测试对象的地址信息;根据用户登录信息和待测试对象的地址信息,生成访问请求并发送待测试对象对应的服务器;对服务器返回的待测试对象的信息启用断言进行测试;根据断言结果确定待测试对象是否正常。
技术研发人员:刘剑夫
受保护的技术使用者:京东数字科技控股有限公司
技术研发日:.11.05
技术公布日:.02.21