自动化配置脚本的方法、装置、电子设备及存储介质转让专利

申请号 : CN201811152520.9

文献号 : CN109542756B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李泽阳

申请人 : 中国平安人寿保险股份有限公司

摘要 :

一种自动化配置脚本的方法,所述方法包括:接收输入的目标数据库信息;自动连接至所述目标数据库,并获取所述目标数据库中的信息表,其中,所述信息表包含产品信息与所述产品信息对应的URL信息;提取所述URL信息中的服务器信息;接收输入的目标服务器信息;及将提取的所述URL信息中的服务器信息替换为所述目标服务器信息。本发明还提供一种自动化配置脚本的装置、电子设备及存储介质。所述装置相当于一自动化测试工具,可以实现根据用户需求一键修改所述目标数据库中信息表中的产品URL信息,解决了人工更改所述对比表中的产品URL信息带来的大量占用人工资源的问题。

权利要求 :

1.一种自动化配置脚本的方法,其特征在于,所述方法包括:

接收输入的目标数据库信息,所述目标数据库信息包括目标数据库的地址、目标数据库名称和端口;

自动连接至所述目标数据库,并获取所述目标数据库中的信息表,包括:导入cx_Oracle模块;根据所述目标数据库的地址连接所述目标数据库;获取cursor;使用cursor进行对应操作,其中,所述对应操作包括读取所述目标数据库中的信息表的操作;关闭cursor;关闭连接;其中,所述信息表包含产品信息与所述产品信息对应的URL信息,所述URL信息包括:资源类型、存放资源的服务器的域名系统主机名或IP地址和资源文件名;

通过正则表达式提取所述URL信息中的服务器信息,包括:通过import re导入正则表达式模块;通过re.compile()函数创建一个Regex对象;用Regex对象的search()或findall()方法,传入想要查找的所述存放资源的服务器的域名系统主机名或IP地址,返回一个Match对象;及调用Match对象的group()方法,返回匹配到的服务器信息;

接收输入的目标服务器信息;及

将提取的所述URL信息中的服务器信息替换为所述目标服务器信息。

2.如权利要求1所述的自动化配置脚本的方法,其特征在于,所述将提取的所述URL信息中的服务器信息替换为所述目标服务器信息步骤之后,所述方法还包括:将所述目标服务器信息与所述信息表中对应的URL信息中的资源类型和资源文件名拼接成一个完整URL信息。

3.如权利要求1所述的自动化配置脚本的方法,其特征在于,所述目标服务器信息包括用户为所述目标数据库中的产品提供的新的网址信息。

4.一种自动化配置脚本的装置,其特征在于,所述装置包括:

第一接收模块,用于接收输入的目标数据库信息,所述目标数据库信息包括目标数据库的地址、目标数据库名称和端口;

连接模块,用于自动连接至所述目标数据库,并获取所述目标数据库中的信息表,包括:导入cx_Oracle模块;根据所述目标数据库的地址连接所述目标数据库;获取cursor;使用cursor进行对应操作,其中,所述对应操作包括读取所述目标数据库中的信息表的操作;

关闭cursor;关闭连接;其中,所述信息表包含产品信息与所述产品信息对应的URL信息,所述URL信息包括:资源类型、存放资源的服务器的域名系统主机名或IP地址和资源文件名;

提取模块,用于通过正则表达式提取所述URL信息中的服务器信息,包括:通过import re导入正则表达式模块;通过re.compile()函数创建一个Regex对象;用Regex对象的search()或findall()方法,传入想要查找的所述存放资源的服务器的域名系统主机名或IP地址,返回一个Match对象;及调用Match对象的group()方法,返回匹配到的服务器信息;

第二接收模块,用于接收输入的目标服务器信息;及

处理模块,用于将提取的所述URL信息中的服务器信息替换为所述目标服务器信息。

5.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至3中任意一项所述的自动化配置脚本的方法。

6.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3中任意一项所述的自动化配置脚本的方法。

说明书 :

自动化配置脚本的方法、装置、电子设备及存储介质

技术领域

[0001] 本发明涉及测试技术领域,具体涉及一种自动化配置脚本的方法、装置、电子设备及存储介质。

背景技术

[0002] 随着互联网技术的不断发展,越来越多的网络软件开始投入到使用中。而在软件的开发过程中,测试工作在其整个开发的生命周期中占有举足轻重的地位。软件测试是指通过测试软件的各项功能以发现其中存在的缺陷的过程。传统的软件测试技术存在着人工干预的阶段,测试人员需要手动设置测试用例以及其中包括的各种测试动作,并且手动运行测试,手动比对测试结果以及根据比对结果判断测试是否成功。例如,在对mili‑shop子系统的测试过程中,我们需要对数据库中的产品链接URL进行人工更改,然而所述子系统中的产品链接URL数据非常多,人工更改起来非常麻烦、占用大量的人工资源,延长软件测试的时间,降低测试效率。

发明内容

[0003] 鉴于以上内容,有必要提出一种自动化配置脚本的方法、装置、电子设备及存储介质,能够根据用户需求一键修改所述目标数据库中信息表中的产品URL信息。
[0004] 本发明的第一方面提供一种自动化配置脚本的方法,所述方法包括:
[0005] 接收输入的目标数据库信息;
[0006] 自动连接至所述目标数据库,并获取所述目标数据库中的信息表,其中,所述信息表包含产品信息与所述产品信息对应的URL信息;
[0007] 提取所述URL信息中的服务器信息;
[0008] 接收输入的目标服务器信息;及
[0009] 将提取的所述URL信息中的服务器信息替换为所述目标服务器信息。
[0010] 优选地,所述URL信息包括:资源类型、存放资源的服务器的域名系统主机名或IP地址和资源文件名。
[0011] 优选地,通过正则表达式提取信息表中的URL信息中的服务器信息,包括:
[0012] 通过import re导入正则表达式模块;
[0013] 通过re.compile()函数创建一个Regex对象;
[0014] 用Regex对象的search()或findall()方法,传入想要查找的所述存放资源的服务器的域名系统主机名或IP地址,返回一个Match对象;及
[0015] 调用Match对象的group()方法,返回匹配到的服务器信息。
[0016] 优选地,所述将提取的所述URL信息中的服务器信息替换为所述目标服务器信息步骤之后,所述方法还包括:
[0017] 将所述目标服务器信息与所述信息表中对应的URL信息中的资源类型和资源文件名拼接成一个完整URL信息。
[0018] 优选地,所述目标数据库信息包括目标数据库的地址、目标数据库名称和端口。
[0019] 优选地,所述自动连接至所述目标数据库,并获取所述目标数据库中的信息表的步骤包括:
[0020] 导入cx_Oracle模块;
[0021] 根据所述目标数据库的地址连接所述目标数据库;
[0022] 获取cursor;
[0023] 使用cursor进行对应操作,其中,所述对应操作包括读取所述目标数据库中的信息表的操作;
[0024] 关闭cursor;
[0025] 关闭连接。
[0026] 优选地,所述目标服务器信息包括用户为所述目标数据库中的产品提供的新的网址信息。
[0027] 本发明的第二方面提供一种自动化配置脚本的装置,所述装置包括:
[0028] 第一接收模块,用于接收输入的目标数据库信息;
[0029] 连接模块,用于自动连接至所述目标数据库,并获取所述目标数据库中的信息表,其中,所述信息表包含产品信息与所述产品信息对应的URL信息;
[0030] 提取模块,用于提取所述URL信息中的服务器信息;
[0031] 第二接收模块,用于接收输入的目标服务器信息;及
[0032] 处理模块,用于将提取的所述URL信息中的服务器信息替换为所述目标服务器信息。
[0033] 本发明的第三方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的自动化配置脚本的方法。
[0034] 本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述自动化配置脚本的方法。
[0035] 本发明所述的自动化配置脚本的方法、装置、电子设备及存储介质,所述方法通过Python技术自动连接至目标数据库,获取所述目标数据库中信息表中的产品URL信息,根据正则表达式自动提取所述产品URL信息中的服务器地址,接收新的服务器地址并将提取的服务器地址更新为所述新的服务器地址。从而实现根据用户需求一键修改所述目标数据库中信息表中的产品URL信息,解决了人工更改所述对比表中的产品URL信息带来的大量占用人工资源的问题。还缩短了软件测试的时间,提升了测试效率。

附图说明

[0036] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0037] 图1是本发明实施例一提供的自动化配置脚本的方法的流程图。
[0038] 图2是本发明实施例二提供的自动化配置脚本的装置的功能模块图。
[0039] 图3是本发明实施例三提供的电子设备的示意图。
[0040] 如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

[0041] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
[0042] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
[0044] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0045] 本发明实施例的自动化配置脚本的方法应用在一个或者多个电子设备中。所述自动化配置脚本的方法也可以应用于由电子设备和通过网络与所述电子设备进行连接的服务器所构成的硬件环境中。网络包括但不限于:广域网、城域网或局域网。本发明实施例的自动化配置脚本的方法可以由服务器来执行,也可以由电子设备来执行;还可以是由服务器和电子设备共同执行。
[0046] 所述对于需要进行自动化配置脚本的方法的电子设备,可以直接在电子设备上集成本发明的方法所提供的应用程序异常处理功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的方法还可以以软件开发工具包(Software Development Kit,SDK)的形式运行在服务器等设备上,以SDK的形式提供自动化配置脚本功能的接口,电子设备或其他设备通过提供的接口即可实现对脚本的自动化配置。
[0047] 实施例一
[0048] 图1是本发明实施例一提供的自动化配置脚本的方法的流程图。根据不同的需求,所述流程图中的执行顺序可以改变,某些步骤可以省略。
[0049] S11、接收输入的目标数据库信息。
[0050] 具体地,通过电子设备的显示单元或输入单元接收外部输入的目标数据库信息。所述目标数据库信息包括目标数据库的地址、目标数据库名称和端口。在其他实施方式中所述目标数据库信息还包括登录数据库的用户名、及登录密码。
[0051] 所述目标数据库可以是Sybase、DB2、Oracle和SQL server等。在本实施方式中,所述目标数据库为Oracle数据库。
[0052] 所述显示单元可以是液晶显示屏(Liquid Crystal Display,LCD)或有机发光二极管(Organic Light‑Emitting Diode,OLED)显示屏。所述显示单元可以用于显示应用程序界面。所述显示单元还可以接收所述输入信息,例如,用户可以通过手指或触摸笔等输入设备在所述显示单元中输入信息。
[0053] 用户可以通过所述输入单元和所述电子设备进行交互。例如,接收用户输入的信息。用户可以采用非接触式的输入方式通过所述输入单元与所述电子设备进行交互。例如动作输入、语音输入等。当用户通过语音输入与所述电子设备交互时,所述输入单元可以是一麦克风。所述输入单元还可以是一外置的遥控器单元,所述遥控器单元通过无线或有线通讯的方式发送控制命令给所述电子设备。
[0054] 所述输入单元还可以是机械按键输入单元,例如按键、拨杆、飞轮输入键等。
[0055] 在本实施方式中,所述电子设备可以包括但不限于个人计算机(Personal Computer,PC)、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、智能手机等。
[0056] S12、自动连接至所述目标数据库,并获取所述目标数据库中的信息表,其中,所述信息表包含产品信息与所述产品信息对应的URL信息。
[0057] 所述统一资源定位符(Uniform Resource Locator,URL)信息是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。有时被俗称为网页地址(网址)。互联网上的每个文件都有一个唯一的URL。
[0058] 基本URL由三部分组成:资源类型、存放资源的服务器的域名系统主机名或IP地址、资源文件名。
[0059] URL的一般语法格式为:
[0060] protocol://hostname[:port]/path/[;parameters][?query]#fragment。其中,带方括号[]的为可选项。
[0061] 所述protocol为指定使用的传输模式/协议,用于告诉浏览器如何处理将要打开的文件。最常用的模式是超文本传输协议(Hypertext Transfer Protocol,HTTP),其他协议还包括文件传输协议ftp,电子邮件地址mailto等。
[0062] 所述hostname指存放资源的服务器的域名系统主机名或IP地址。
[0063] 所述端口号(port)为一整数,可选。省略时使用默认端口,各种传输协议都有默认的端口号,如http的默认端口为80。如果输入时省略,则使用默认端口号。有时候出于安全或其他考虑,可以在服务器上对端口进行重定义,即采用非标准端口号,此时,URL中就不能省略端口号这一项。
[0064] 所述hostname也可以包含登录服务器必须的用户名称和密码。
[0065] 所述path包括路径和文件名,是指到达上述文件的路径和文件本身的名称。路径部分包含等级结构的路径定义,一般来说不同部分之间以斜线(/)分隔。
[0066] 所述parameters(参数)用于指定特殊参数的可选项。
[0067] 询问部分query一般用来传送对服务器上的数据库进行动态询问时所需要的参数。
[0068] 在本实施方式中,所述信息表描述的是不同的产品对应的不同的URL信息。
[0069] 例如,当所述产品为电视机时,所述电视机对应的URL信息为http://cardmall.pingan.com/lookUpProductDetailInfo.shtml?productId=00480787&keywords=&shelvesId=00480787;
[0070] 当所述产品为血氧仪时,所述血氧仪对应的URL信息为http://cardmall.pingan.com/lookUpProductDetailInfo.shtml?productId=00478872&keywords=&shelvesId=00478872。
[0071] 在本实施方式中,可以采用python技术实现与所述目标数据库的连接。具体而言,通过所述Python自带的cx_Oracle模块实现自动连接至所述目标数据库的目的。
[0072] 首先,下载并安装cx_Oracle模块,之后就可以连接和使用所述目标数据库。流程如下:
[0073] 导入cx_Oracle模块;
[0074] 连接数据库;
[0075] 获取cursor;
[0076] 使用cursor进行各种操作;
[0077] 关闭cursor;
[0078] 关闭连接。
[0079] 其中,通过cx_Oracle.connect(如,"用户名/密码@Oracle服务器IP/Oracle的SERVICE_NAME")语句连接所述目标数据库。
[0080] 例如:
[0081] import cx_Oracle #导入cx_Oracle模块
[0082] conn=cx_Oracle.connect('load/123456@localhost/orcl')#连接数据库[0083] c=conn.cursor() #获取cursor
[0084] x=c.execute('select sysdate from dual') #使用cursor进行各种操作[0085] x.fetchone() #读取操作结果
[0086] c.close #关闭cursor
[0087] conn.close() #关闭连接
[0088] 在本实施方式中,还可以通过Python对所述目标数据库进行读操作和写操作。例如,通过Python读取所述目标数据库中的URL信息。
[0089] S13、提取所述URL信息中的服务器信息。
[0090] 在本实施方式中,通过正则表达式提取所述信息表中的URL信息中的服务器信息。所述服务器信息包括存放产品信息的服务器的域名系统主机名或IP地址。可以理解的是,本方案需要提取上述信息表中所有URL信息中的服务器信息。
[0091] 所述正则表达式为高级文本模式匹配,以及搜索‑替代等功能提供了基础。正则表达式是一些由字符和特殊符号组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配一个有相似特征的字符串的集合,因此能按某模式匹配一系列有相似特征的字符串。
[0092] 例如正则表达式模式为:0?[1‑9],匹配的字符是:1~9中任意一位数字,前面可能还有一个“0”。例如,可以把它看成一月九月的数字表示形式,不管是以为数字还是两位数字的表示形式。
[0093] 又如正则表达式模式为:\w@\w+.com,匹配的字符是简单的XXX@YYY.com格式的电子邮件地址。
[0094] 另外,例如当所述信息表中的URL信息为:http://www.baidu.com/ddd/aaa/gggggg.html?a=33%&sid=lV‑RgLBX*E5wJyFr&r=35d363d1cad5eabfcd131082d275f954#;可以通过正则表达式:^(http:///{2})?([^///]+)([///[a‑z]+]*//.?[a‑z]*)?(//?[a‑z=//d%#*&‑]*)?来提取上述URL信息中的服务器信息。
[0095] 可以理解的是,还可以通过正则表达式提取所述信息表中URL信息中的协议和端口信息,本文对此不作限定。
[0096] 在本实施方式中,Python使用正则表达式提取URL信息中的服务器信息的步骤包括:
[0097] 1)通过import re导入正则表达式模块;
[0098] 2)通过re.compile()函数创建一个Regex对象;
[0099] 3)用Regex对象的search()或findall()方法,传入想要查找的URL信息中的hostname,返回一个Match对象;
[0100] 4)调用Match对象的group()方法,返回匹配到的服务器信息。从而使用正则表达式提取所述信息表中的URL信息中的服务器信息。
[0101] S14、接收输入的目标服务器信息。
[0102] 所述目标服务器信息包括用户为数据库中的产品提供的新的网址信息。在对mili‑shop子系统测试完成后,需要更新所述子系统新数据库中的产品的网址信息。在本实施方式中,可以通过电子设备的显示单元或输入单元接收外部输入的目标服务器信息。
[0103] S15、将所述URL信息中的服务器信息替换为所述目标服务器信息。
[0104] 在本实施方式中,将从信息表中提取的所有所述URL信息中的服务器信息替换为所述目标服务器信息后,再将所述目标服务器信息与原始URL中的协议、资源文件名等信息拼接成一个完整URL信息。从而实现自动更改信息表中产品信息对应的URL信息的目的。
[0105] 举例而言,设定一oracle数据库中存储有表A,所述表A中包含了大量产品信息,以及与所述产品对应的URL信息。登录所述oracle数据库的用户名为load,密码为123456。
[0106] 那么,通过Python自带的cx_Oracle模块实现自动连接至所述目标数据库,具体通过“conn=cx_Oracle.connect('load/123456@localhost/orcl')”语句连接所述oracle数据库,并获取所述oracle数据库中的表A,通过Python技术读取所述表A中的URL信息。通过正则表达式提取所述表A中URL信息中的服务器信息。再在接收用户输入的目标服务器信息后,将所述表A中URL信息中的服务器信息替换为所述目标服务器信息后,并将所述目标服务器信息与原始URL中的协议、资源文件名等信息拼接成一个完整URL信息。
[0107] 综上所述,本发明提供的自动化配置脚本的方法,通过Python技术自动连接至目标数据库,获取所述目标数据库中信息表中的产品URL信息,根据正则表达式自动提取所述产品URL信息中的服务器地址,接收新的服务器地址并将提取的服务器地址更新为所述新的服务器地址。从而实现根据用户需求一键修改所述目标数据库中信息表中的产品URL信息,解决了人工更改所述对比表中的产品URL信息带来的大量占用人工资源的问题。还缩短了软件测试的时间,提升了测试效率。
[0108] 以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
[0109] 下面结合第2至3图,分别对实现上述自动化配置脚本的方法的电子设备的功能模块及硬件结构进行介绍。
[0110] 实施例二
[0111] 图2为本发明自动化配置脚本的装置较佳实施例中的功能模块图。
[0112] 在一些实施例中,所述自动化配置脚本的装置20运行于电子设备中。所述自动化配置脚本的装置20可以包括多个由程序代码段所组成的功能模块。所述自动化配置脚本的装置20中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行(详见图1及其相关描述)防盗功能。
[0113] 本实施例中,所述自动化配置脚本的装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:第一接收模块201、连接模块202、提取模块203、第二接收模块204及处理模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在一些实施例中,关于各模块的功能将在后续的实施例中详述。
[0114] 所述第一接收模块201用于接收输入的目标数据库信息。
[0115] 具体地,通过电子设备的显示单元或输入单元接收外部输入的目标数据库信息。所述目标数据库信息包括目标数据库的地址、目标数据库名称和端口。在其他实施方式中所述目标数据库信息还包括登录数据库的用户名、及登录密码。
[0116] 所述目标数据库可以是Sybase、DB2、Oracle和SQL server等。在本实施方式中,所述目标数据库为Oracle数据库。
[0117] 所述显示单元可以是液晶显示屏(Liquid Crystal Display,LCD)或有机发光二极管(Organic Light‑Emitting Diode,OLED)显示屏。所述显示单元可以用于显示应用程序界面。所述显示单元还可以接收所述输入信息,例如,用户可以通过手指或触摸笔等输入设备在所述显示单元中输入信息。
[0118] 用户可以通过所述输入单元和所述电子设备进行交互。例如,接收用户输入的信息。用户可以采用非接触式的输入方式通过所述输入单元与所述电子设备进行交互。例如动作输入、语音输入等。当用户通过语音输入与所述电子设备交互时,所述输入单元可以是一麦克风。所述输入单元还可以是一外置的遥控器单元,所述遥控器单元通过无线或有线通讯的方式发送控制命令给所述电子设备。
[0119] 所述输入单元还可以是机械按键输入单元,例如按键、拨杆、飞轮输入键等。
[0120] 在本实施方式中,所述电子设备可以包括但不限于个人计算机(Personal Computer,PC)、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、智能手机等。
[0121] 所述连接模块202用于自动连接至所述目标数据库,并获取所述目标数据库中的信息表,其中,所述信息表包含产品信息与所述产品信息对应的URL信息。
[0122] 所述统一资源定位符(Uniform Resource Locator,URL)信息是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。有时被俗称为网页地址(网址)。互联网上的每个文件都有一个唯一的URL。
[0123] 基本URL由三部分组成:资源类型、存放资源的服务器的域名系统主机名或IP地址、资源文件名。
[0124] URL的一般语法格式为:
[0125] protocol://hostname[:port]/path/[;parameters][?query]#fragment。其中,带方括号[]的为可选项。
[0126] 所述protocol为指定使用的传输模式/协议,用于告诉浏览器如何处理将要打开的文件。最常用的模式是超文本传输协议(Hypertext Transfer Protocol,HTTP),其他协议还包括文件传输协议ftp,电子邮件地址mailto等。
[0127] 所述hostname指存放资源的服务器的域名系统主机名或IP地址。
[0128] 所述端口号(port)为一整数,可选。省略时使用默认端口,各种传输协议都有默认的端口号,如http的默认端口为80。如果输入时省略,则使用默认端口号。有时候出于安全或其他考虑,可以在服务器上对端口进行重定义,即采用非标准端口号,此时,URL中就不能省略端口号这一项。
[0129] 所述hostname也可以包含登录服务器必须的用户名称和密码。
[0130] 所述path包括路径和文件名,是指到达上述文件的路径和文件本身的名称。路径部分包含等级结构的路径定义,一般来说不同部分之间以斜线(/)分隔。
[0131] 所述parameters(参数)用于指定特殊参数的可选项。
[0132] 询问部分query一般用来传送对服务器上的数据库进行动态询问时所需要的参数。
[0133] 在本实施方式中,所述信息表描述的是不同的产品对应的不同的URL信息。
[0134] 例如,当所述产品为电视机时,所述电视机对应的URL信息为http://cardmall.pingan.com/lookUpProductDetailInfo.shtml?productId=00480787&keywords=&shelvesId=00480787;
[0135] 当所述产品为血氧仪时,所述血氧仪对应的URL信息为http://cardmall.pingan.com/lookUpProductDetailInfo.shtml?productId=00478872&keywords=&shelvesId=00478872。
[0136] 在本实施方式中,可以采用python技术实现与所述目标数据库的连接。具体而言,通过所述Python自带的cx_Oracle模块实现自动连接至所述目标数据库的目的。
[0137] 首先,下载并安装cx_Oracle模块,之后就可以连接和使用所述目标数据库。流程如下:
[0138] 导入cx_Oracle模块;
[0139] 连接数据库;
[0140] 获取cursor;
[0141] 使用cursor进行各种操作;
[0142] 关闭cursor;
[0143] 关闭连接。
[0144] 其中,通过cx_Oracle.connect(如,"用户名/密码@Oracle服务器IP/Oracle的SERVICE_NAME")语句连接所述目标数据库。
[0145] 例如:
[0146] import cx_Oracle #导入cx_Oracle模块
[0147] conn=cx_Oracle.connect('load/123456@localhost/orcl')#连接数据库[0148] c=conn.cursor() #获取cursor
[0149] x=c.execute('select sysdate from dual') #使用cursor进行各种操作[0150] x.fetchone() #读取操作结果
[0151] c.close #关闭cursor
[0152] conn.close() #关闭连接
[0153] 在本实施方式中,还可以通过Python对所述目标数据库进行读操作和写操作。例如,通过Python读取所述目标数据库中的URL信息。
[0154] 所述提取模块203用于提取所述URL信息中的服务器信息。
[0155] 在本实施方式中,通过正则表达式提取所述信息表中的URL信息中的服务器信息。所述服务器信息包括存放产品信息的服务器的域名系统主机名或IP地址。可以理解的是,本方案需要提取上述信息表中所有URL信息中的服务器信息。
[0156] 所述正则表达式为高级文本模式匹配,以及搜索‑替代等功能提供了基础。正则表达式是一些由字符和特殊符号组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配一个有相似特征的字符串的集合,因此能按某模式匹配一系列有相似特征的字符串。
[0157] 例如正则表达式模式为:0?[1‑9],匹配的字符是:1~9中任意一位数字,前面可能还有一个“0”。例如,可以把它看成一月九月的数字表示形式,不管是以为数字还是两位数字的表示形式。
[0158] 又如正则表达式模式为:\w@\w+.com,匹配的字符是简单的XXX@YYY.com格式的电子邮件地址。
[0159] 另外,例如当所述信息表中的URL信息为:http://www.baidu.com/ddd/aaa/gggggg.html?a=33%&sid=lV‑RgLBX*E5wJyFr&r=35d363d1cad5eabfcd131082d275f954#;可以通过正则表达式:^(http:///{2})?([^///]+)([///[a‑z]+]*//.?[a‑z]*)?(//?[a‑z=//d%#*&‑]*)?来提取上述URL信息中的服务器信息。
[0160] 可以理解的是,还可以通过正则表达式提取所述信息表中URL信息中的协议和端口信息,本文对此不作限定。
[0161] 在本实施方式中,Python使用正则表达式提取URL信息中的服务器信息的步骤包括:
[0162] 1)通过import re导入正则表达式模块;
[0163] 2)通过re.compile()函数创建一个Regex对象;
[0164] 3)用Regex对象的search()或findall()方法,传入想要查找的hostname,返回一个Match对象;
[0165] 4)调用Match对象的group()方法,返回匹配到的服务器信息。从而使用正则表达式提取所述信息表中的URL信息中的服务器信息。
[0166] 所述第二接收模块204用于接收输入的目标服务器信息。
[0167] 所述目标服务器信息包括用户为数据库中的产品提供的新的网址信息。在对mili‑shop子系统测试完成后,需要更新所述子系统新数据库中的产品的网址信息。在本实施方式中,可以通过电子设备的显示单元或输入单元接收外部输入的目标服务器信息。
[0168] 所述处理模块205用于将所述URL信息中的服务器信息替换为所述目标服务器信息。
[0169] 在本实施方式中,将从信息表中提取的所有所述URL信息中的服务器信息替换为所述目标服务器信息后,再将所述目标服务器信息与原始URL中的协议、资源文件名等信息拼接成一个完整URL信息。从而实现自动更改信息表中产品信息对应的URL信息的目的。
[0170] 举例而言,设定一oracle数据库中存储有表A,所述表A中包含了大量产品信息,以及与所述产品对应的URL信息。登录所述oracle数据库的用户名为load,密码为123456。
[0171] 那么,通过Python自带的cx_Oracle模块实现自动连接至所述目标数据库,具体通过“conn=cx_Oracle.connect('load/123456@localhost/orcl')”语句连接所述oracle数据库,并获取所述oracle数据库中的表A,通过Python技术读取所述表A中的URL信息。通过正则表达式提取所述表A中URL信息中的服务器信息。再在接收用户输入的目标服务器信息后,将所述表A中URL信息中的服务器信息替换为所述目标服务器信息后,并将所述目标服务器信息与原始URL中的协议、资源文件名等信息拼接成一个完整URL信息。
[0172] 综上所述,本发明所述的自动化配置脚本的装置20,包括第一接收模块201、连接模块202、提取模块203、第二接收模块204及处理模块205。第一接收模块201用于接收输入的目标数据库信息;所述连接模块202用于自动连接至所述目标数据库,并获取所述目标数据库中的信息表,其中,所述信息表包含产品信息与所述产品信息对应的URL信息;所述提取模块203用于提取所述URL信息中的服务器信息;所述第二接收模块204用于接收输入的目标服务器信息;及处理模块205用于将提取的所述URL信息中的服务器信息替换为所述目标服务器信息。所述自动化配置脚本的装置20实现根据用户需求一键修改所述目标数据库中信息表中的产品URL信息,解决了人工更改所述对比表中的产品URL信息带来的大量占用人工资源的问题。还缩短了软件测试的时间,提升了测试效率。
[0173] 上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,双屏设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
[0174] 实施例三
[0175] 图3为本发明实施例三提供的电子设备的示意图。
[0176] 所述电子设备3包括:存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。
[0177] 所述至少一个处理器32执行所述计算机程序33时实现上述自动化配置脚本方法实施例中的步骤。
[0178] 示例性的,所述计算机程序33可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述至少一个处理器32执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序33在所述电子设备3中的执行过程。
[0179] 所述电子设备3可以是手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等安装有应用程序的设备。本领域技术人员可以理解,所述示意图3仅仅是电子设备3的示例,并不构成对电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备3还可以包括输入输出设备、网络接入设备、总线等。
[0180] 所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述处理器32可以是微处理器或者所述处理器32也可以是任何常规的处理器等,所述处理器32是所述电子设备3的控制中心,利用各种接口和线路连接整个电子设备3的各个部分。
[0181] 所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述电子设备3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备3的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0182] 所述电子设备3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0183] 在本发明所提供的几个实施例中,应所述理解到,所揭露的电子设备和方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0184] 另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0185] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
[0186] 最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神范围。