CN104899134B - 域名注册服务器自动化测试系统和方法 - Google Patents
域名注册服务器自动化测试系统和方法 Download PDFInfo
- Publication number
- CN104899134B CN104899134B CN201510214181.2A CN201510214181A CN104899134B CN 104899134 B CN104899134 B CN 104899134B CN 201510214181 A CN201510214181 A CN 201510214181A CN 104899134 B CN104899134 B CN 104899134B
- Authority
- CN
- China
- Prior art keywords
- test
- message
- database
- client
- responsible
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种域名注册服务器自动化测试系统和方法。该系统包括:配置管理模块,负责读取和解析配置文件内容,在配置文件中进行测试相关配置;XML报文处理模块,负责生成客户端XML报文和解析服务器端返回的XML报文;数据库操作模块,负责解析和执行对数据库的操作指令;Shell操作模块,负责解析和执行Shell命令,完成对本地或远程服务器的操作;结果检查模块,负责对测试结果进行检测,从而判断用例执行正确性;执行控制模块,负责对被测服务器进行连接管理和测试用例的循环执行控制。本发明能够减少测试人工工作量,能够以多种方式自动进行测试结果检查,极大提高自动化测试覆盖率和测试效率。
Description
技术领域
本发明属于域名技术、域名注册服务器测试技术领域,具体涉及一种域名注册服务器自动化测试系统和方法。
背景技术
域名注册服务器作为由注册局运营的互联网基础服务,需要满足代表注册商或注册人的客户端连接和业务办理需求,一般应根据RFC若干相关文件中所定义的通信协议来进行设计和实现。这些协议(Extensible Provisioning Protocol)规定域名服务器和客户端之间通过一系列符合XML Schema结构要求的XML报文进行交互。服务器需要支持Domain(域名),Host(主机),Contact(联系人)三大对象,能实现对三大对象的Create、Update、Check、Info、Transfer、Renew、Delete命令操作,还需要支持Login、Logout、Greeting、Hello、Poll等管理命令。
对域名注册服务器的测试通常需要在客户端制造XML报文,发送到服务器,服务器进行相应业务处理后用XML报文将处理结果返回给客户端,客户端基于此响应报文判定处理正确性。为了提高测试效率,通常需要进行自动化测试的设计,但对域名注册服务器的自动化测试通常有如下缺点:a、需要手工准备客户端的XML请求报文,工作量仍然很大。b、对测试结果和服务器响应报文正确性缺乏有效、简单的检查手段。c、对测试用例覆盖率不高,不能大比例地将测试用例自动化执行。d、由于业务规则的限制,对诸如Transfer、Renew等命令操作,经常需要等到特定的日期和时刻才能进行,因此经常无法在自动化测试过程中快速地直接进行测试。e、很难管理服务器和单个测试客户端自动完成需要两个客户端才能实现的Transfer操作。
发明内容
本发明针对上述问题,提供一种域名注册服务器自动化测试系统和方法。采用该方案,测试人员只需要输入少量指令和关键字段值,而不需要编写XML报文,能够减少测试人工工作量;能够以多种方式,自动进行测试结果检查,并让服务器所支持的对象和命令绝大多数都可以进行自动化测试,极大提高自动化测试覆盖率和测试效率。
为实现上述目的,本发明采用的技术方案如下:
一种域名注册服务器自动化测试系统,包括以下模块或子系统:
配置管理模块,负责读取和解析配置文件内容,在配置文件中进行测试相关配置;
XML报文处理模块,负责生成客户端XML报文和解析服务器端返回的XML报文;
数据库操作模块,负责解析和执行对数据库的操作指令(包括增、删、改、查操作);
Shell操作模块,负责解析和执行Shell命令,完成对本地或远程服务器的操作;
结果检查模块,负责对测试结果进行检测,从而判断用例执行正确性;
执行控制模块,负责对被测服务器进行连接管理和测试用例的循环执行控制。
一种采用上述系统的域名注册服务器自动化测试方法,其步骤包括:
1)配置文件中进行测试相关配置,包括被测系统服务IP、服务端口、服务部署路径、用例描述文件名、测试报告文件名、数据库描述;
2)在测试用例描述文件中描述测试用例,包括每个客户端请求报文对应的报文关键字输入文件名、需要检查的响应报文字段值、响应报文中存在或不存在的字符串,并根据需要嵌入数据库操作指令和Shell操作指令;
3)编写报文关键字输入文件,将生成对应的XML报文所需要的报文关键字段值录入;
4)根据配置,与被测服务器建立连接,依序读取用例描述并解释执行测试用例;
5)根据每个用例中输入的检查指令和待检查内容,执行测试结果检查,可包括数据库检查和响应报文的检查;
6)全部用例执行完毕后,断开和服务器的连接,生成测试报告。
本发明的特点是:1)根据协议和用户输入的报文关键字段值自动生成XML报文,模拟客户端和服务器之间的通信操作。2)将数据库操作指令嵌入到测试用例描述中,在用例执行过程中很方便地实现对数据库的操作,得到需要的测试数据。3)将Shell操作指令嵌入到测试用例描述中,在用例执行过程中很方便地实现对本地或远程服务器的管理,得到需要的测试环境。4)测试结果检查时支持直接与数据库比对,也可以直接在服务器响应报文中进行特定字符串的存在和不存在判定。
与现有技术相比,本发明的有益效果如下:
1)测试自动化率高,最高可达90%以上,提高了测试效率。
2)对每个待测用例,测试人员只需要准备少量指令描述和报文关键字的取值,而不需要编写具体的XML报文,工作量减少,复杂度降低。
3)对于Renew,Transfer等对操作时间有严格要求的操作,系统也可以支持自动化测试。
4)可以自动实现对被测服务器的配置修改和重启,从而可以实现单客户端代表不同注册商,从而能进行Transfer操作。
5)测试过程中只需要准备用例对应的测试指令描述和报文关键字数据,而不需要代码开发和维护工作,降低了测试人员自动化测试工作难度。
6)可以自动进行测试结果检查,并生成测试报告。
附图说明
图1是实施例中域名注册服务器自动化测试系统的模块组成示意图。
图2是实施例中域名注册服务器自动化测试流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明提供一种数据驱动的可以对域名注册服务器进行自动化测试的系统,其特征是包括以下模块或子系统,如图1所示。
1),配置管理模块,负责读取和解析配置文件内容,根据配置获取被测系统(待测试的域名注册服务器)的服务IP、服务端口、服务部署路径、用例描述文件名、测试报告文件名、数据库描述等信息。
2),XML报文处理模块,负责生成客户端XML报文和解析注册服务器端返回的XML响应报文。生成客户端XML报文时需要读取测试用例对应的报文关键字输入文件,解析出一组关键字,然后根据EPP协议和相应的XML Schema构建客户端XML报文;客户端接收到注册服务器响应的XML报文后,根据协议解析报文,从中解析出用户关注的关键字段值或特定字符串。
3),数据库操作模块,负责解析和执行对数据库的操作指令,包括增、删、改、查操作。
4),Shell操作模块,负责解析和执行Shell命令,完成对本地或远程服务器的操作,如修改域名注册服务器的配置文件、重新启动服务器、执行Linux命令等。
5),结果检查模块,对测试结果进行检测,从而判断用例执行正确性。支持3种检查方式:第一,可以将期望结果与数据库查询结果对比;第二,可以将期望结果与服务器响应报文解析出来的特定字段或字符串进行对比;第三,直接判断服务器响应报文中包含或不包含特定字符串。
6),执行控制模块,负责对被测服务器进行连接管理和测试用例的循环执行控制。具体功能包括:根据配置连接被测的域名注册服务器,根据用例描述文件中的用例描述解释执行用例指令,根据需要调用XML报文处理模块读取关键字输入文件中的关键字并组装报文,将报文发送到服务器端,并接受服务器端返回的响应报文;若用例描述文件中有数据库或Shell操作指令,则调用相应模块进行处理;调用结果检查模块判断用例执行结果的正确性;生成测试报告。
本实施例的自动化测试流程如图2所示。其步骤描述如下:
1)在配置文件中进行测试相关配置,如被测系统服务IP、服务端口、服务部署路径、用例描述文件名、测试报告文件名、数据库描述等信息。
2)在测试用例描述文件中描述测试用例,包括每个客户端请求报文对应的报文关键字输入文件名、需要检查的字段值、响应报文中存在或不存在的字符串,并根据需要嵌入数据库操作指令和Shell操作指令。
3)编写关键字输入文件,将生成对应的XML报文所需要的报文关键字段值录入。
4)根据配置,与被测服务器建立连接,依序读取用例描述并执行测试用例。根据每个用例中的不同指令类型分别执行相应功能。若是报文交互指令,则根据用例描述中指明的报文关键字输入文件内容,生成客户端XML报文,发送给服务器,并接收服务器返回的响应报文。若是数据库或Shell操作指令,则对该指令进行相应的解释执行。
5)根据每个用例描述中的结果检查指令及待检查内容,执行测试结果检查,包括数据库检查和响应报文的检查。
6)全部用例执行完毕,断开和服务器的连接,生成测试报告。
本发明对于Renew,Transfer等对业务操作时间有严格要求的操作,也可以支持自动化测试。具体方法是:在发送客户端报文前,使用数据库操作指令修改数据库,将相应记录的时间字段修改为所期望的日期和时间,然后发送客户端报文,服务器端便可立即进行相应业务处理,从而客户端不需要等待到特定时刻便可连续执行测试。
本发明对于Transfer这种需要两个客户端配合完成的业务操作,也可以支持自动化测试。Transfer操作需要有两个客户端分别代表两个注册商(或注册人)才能完成域名转移操作,两个客户端有不同配置,并且在数据库注册商配置表中对两个客户端及IP分别有对应记录,但两个客户端在进行自动化测试过程中进行操作配合比较难控制。本发明解决此问题的具体方法是:用一个客户端分别代表两个注册商(或注册人),先用客户端代表A注册商完成Transfer的Request操作(请求操作),然后用Shell指令变更客户端和注册服务器配置,并用数据库操作指令修改数据库的注册商配置表,再用Shell指令控制并重启注册服务器,然后客户端便可代表B注册商完成Transfer的Approve操作(批准操作),从而自动完成域名Transfer业务操作。
本发明在域名注册服务器的测试实践中,可自动化执行90%以上的功能性测试用例,在人工完成撰写测试用例描述文件后,执行3000余个测试用例,包括记录日志和生成报告,耗时大约10分钟左右。
本发明中的XML处理模块,也可以支持用户输入原始的客户端XML报文文件而不用根据报文关键字文件进行自动报文组装的模式,虽然原始的XML报文构造过程复杂,但是在某些特定环境下此模式也有用途,比如可以修改正确报文为错误报文,然后故意用错误报文进行容错处理测试。
本发明中的Shell操作模块和数据库操作模块非必需,但没有此两模块,测试用例的自动化率会大大降低。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。
Claims (10)
1.一种域名注册服务器自动化测试系统,其特征在于,包括:
配置管理模块,负责读取和解析配置文件内容,在配置文件中进行测试相关配置;
XML报文处理模块,负责生成客户端XML报文和解析服务器端返回的XML报文;
数据库操作模块,负责解析和执行对数据库的操作指令;
Shell操作模块,负责解析和执行Shell命令,完成对本地或远程服务器的操作;
结果检查模块,负责对测试结果进行检测,从而判断用例执行正确性;
执行控制模块,负责对被测服务器进行连接管理和测试用例的循环执行控制。
2.如权利要求1所述的系统,其特征在于,所述配置管理模块在配置文件中进行的测试相关配置包括:被测系统的服务IP、服务端口、服务部署路径、用例描述文件名、测试报告文件名、数据库描述。
3.如权利要求1所述的系统,其特征在于:所述XML报文处理模块生成客户端XML报文时,读取测试用例对应的报文关键字输入文件,解析出一组关键字,然后根据EPP协议和相应的XML Schema构建客户端XML报文;客户端接收到被测服务器响应的XML报文后,根据协议解析报文,所述XML报文处理模块从中解析出用户关注的关键字段值或特定字符串。
4.如权利要求1所述的系统,其特征在于:所述XML报文处理模块支持由用户输入原始的客户端XML报文文件而不用根据报文关键字文件进行自动报文组装的模式。
5.如权利要求1所述的系统,其特征在于,所述Shell操作模块进行的对本地或远程服务器的操作包括:修改域名注册服务器的配置文件、重新启动服务器、执行Linux命令。
6.如权利要求1所述的系统,其特征在于,所述结果检查模块支持3种检查方式:第一,将期望结果与数据库查询结果对比;第二,将期望结果与被测服务器返回报文解析出来的特定字段或字符串进行对比;第三,直接判断被测服务器返回报文中包含或不包含特定字符串。
7.如权利要求1所述的系统,其特征在于,所述执行控制模块的具体功能包括:根据配置连接被测服务器,根据用例描述文件中的用例描述解释执行用例指令,根据需要调用XML报文处理模块读取关键字输入文件中的关键字并组装报文,将报文发送到服务器端,并接受服务器端返回的响应报文;若用例描述文件中有数据库或Shell操作指令,则调用数据库操作模块和Shell操作模块进行处理;调用结果检查模块判断用例执行结果的正确性;生成测试报告。
8.一种采用权利要求1所述系统的域名注册服务器自动化测试方法,其步骤包括:
1)在配置文件中进行测试相关配置,包括被测系统服务IP、服务端口、服务部署路径、用例描述文件名、测试报告文件名、数据库描述;
2)在测试用例描述文件中描述测试用例,包括每个用例对应的关键字输入文件名、需要检查的字段值、返回报文中存在或不存在的字符串,并根据需要嵌入数据库操作指令和Shell操作指令;
3)编写关键字输入文件,将生成对应的XML报文所需要的报文关键字段值录入;
4)根据配置,与被测服务器建立连接,依序读取用例描述并执行测试用例;根据每个用例中的不同指令类型分别执行相应功能:若是报文交互指令,则根据用例描述中指明的关键字输入文件内容,生成客户端XML报文,发送给被测服务器,并接收被测服务器返回的响应报文;若是数据库或Shell操作指令,则对该指令进行相应的解释执行;
5)根据每个用例中输入的检查指令和待检查内容,执行测试结果检查,包括数据库检查和响应报文的检查;
6)全部用例执行完毕后,断开和被测服务器的连接,生成测试报告。
9.如权利要求8所述的方法,其特征在于,对于对业务操作时间有严格要求的业务操作,在发送客户端报文前,使用数据库操作指令修改数据库,将相应记录的时间字段修改为所期望的日期和时间,然后发送客户端报文,服务器端立即进行相应业务处理,从而使客户端不需要等待到特定时刻便可连续执行测试。
10.如权利要求8所述的方法,其特征在于,对于需要两个客户端配合完成的域名转移业务操作,用一个客户端分别代表两个注册商或注册人,先用客户端代表A注册商完成域名转移的Request操作,然后用Shell指令变更客户端和被测服务器配置,并用数据库操作指令修改数据库的注册商配置表,再用Shell指令控制并重启被测服务器,然后客户端便可代表B注册商完成域名转移的Approve操作,从而自动完成域名转移业务操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510214181.2A CN104899134B (zh) | 2015-04-29 | 2015-04-29 | 域名注册服务器自动化测试系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510214181.2A CN104899134B (zh) | 2015-04-29 | 2015-04-29 | 域名注册服务器自动化测试系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899134A CN104899134A (zh) | 2015-09-09 |
CN104899134B true CN104899134B (zh) | 2018-02-02 |
Family
ID=54031809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510214181.2A Active CN104899134B (zh) | 2015-04-29 | 2015-04-29 | 域名注册服务器自动化测试系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899134B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897481B (zh) * | 2016-05-20 | 2019-02-26 | 北京百度网讯科技有限公司 | 域名信息操作方法和装置 |
CN106649099B (zh) * | 2016-11-15 | 2019-04-26 | 中国互联网络信息中心 | 一种dns监测服务自动化测试方法与系统 |
CN106571981B (zh) * | 2016-11-15 | 2019-07-19 | 中国互联网络信息中心 | 一种dns服务器自动化测试方法与系统 |
CN110928774B (zh) * | 2019-11-07 | 2023-05-05 | 杭州顺网科技股份有限公司 | 一种基于节点式的自动化测试系统 |
CN113438126B (zh) * | 2021-06-17 | 2022-05-10 | 中国科学院计算机网络信息中心 | 一种应用于区块链域名系统的分布式在线测试系统 |
CN115801847A (zh) * | 2022-10-24 | 2023-03-14 | 广州民航信息技术有限公司 | 一种指令解析方法、系统和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334220B2 (en) * | 2004-03-11 | 2008-02-19 | Microsoft Corporation | Data driven test automation of web sites and web services |
CN101217425A (zh) * | 2008-01-04 | 2008-07-09 | 中兴通讯股份有限公司 | Web测试的方法及装置 |
CN102710460A (zh) * | 2012-05-14 | 2012-10-03 | 南京邮电大学 | 一种基于单子技术的Web服务测试数据自动生成方法 |
EP2610754A1 (en) * | 2011-12-28 | 2013-07-03 | Verisign, Inc. | Test automation environment for testing domain name resolution |
-
2015
- 2015-04-29 CN CN201510214181.2A patent/CN104899134B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334220B2 (en) * | 2004-03-11 | 2008-02-19 | Microsoft Corporation | Data driven test automation of web sites and web services |
CN101217425A (zh) * | 2008-01-04 | 2008-07-09 | 中兴通讯股份有限公司 | Web测试的方法及装置 |
EP2610754A1 (en) * | 2011-12-28 | 2013-07-03 | Verisign, Inc. | Test automation environment for testing domain name resolution |
CN102710460A (zh) * | 2012-05-14 | 2012-10-03 | 南京邮电大学 | 一种基于单子技术的Web服务测试数据自动生成方法 |
Non-Patent Citations (1)
Title |
---|
基于PlanetLab平台的校园网DNS服务性能测试方法;张建华;《中国高等教育学会教育信息化分会第十二次学术年会论文集》;20141231;第1-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104899134A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899134B (zh) | 域名注册服务器自动化测试系统和方法 | |
CN109495308A (zh) | 一种基于管理信息系统的自动化运维系统 | |
CN112905261B (zh) | 一种应用程序接口api管控方法、装置及电子设备 | |
CN107241315B (zh) | 银行网关接口的接入方法、装置及计算机可读存储介质 | |
WO2020125265A1 (zh) | 容器的业务监控方法、系统和计算机可读存储介质 | |
CN106021093A (zh) | 一种测试用例复用的方法及系统 | |
CN110278097A (zh) | 一种基于Android系统的服务器运维系统及方法 | |
CN111090587A (zh) | 投产点服务测试方法、装置、设备及存储介质 | |
CN106209503B (zh) | Rpc接口测试方法及系统 | |
CN107133231B (zh) | 一种数据获取方法和装置 | |
CN107766509A (zh) | 一种网页静态备份的方法和装置 | |
CN107979489A (zh) | 综合接入设备配置监控方法 | |
CN113658591B (zh) | 一种面向智能家居的语音交互适配系统 | |
CN113485927B (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN104901845A (zh) | 域名whois服务自动化测试系统和方法 | |
CN115951923B (zh) | 订阅事件管理方法、显示系统、设备和存储介质 | |
CN113792008A (zh) | 网络拓扑结构的获取方法、装置、电子设备及存储介质 | |
CN109446042A (zh) | 一种用于智能用电设备的日志管理方法及系统 | |
CN110442611A (zh) | 一种公司品牌域名自动化查询方法及系统 | |
CN106888250A (zh) | 用于实现推送的方法、用于展现推送内容的方法及设备 | |
CN103326892B (zh) | Web接口的操作方法及装置 | |
CN106789271B (zh) | 一种报障处理方法和系统 | |
WO2016091141A1 (zh) | 信息采集方法及装置 | |
CN110825538A (zh) | 一种基于mq可自定义数据类型动态进行数据交互的方法 | |
CN112527453B (zh) | 虚拟化信息仿真系统、方法及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |