CN110213127A - 一种融合虚拟化多任务的自动化测试***及方法 - Google Patents

一种融合虚拟化多任务的自动化测试***及方法 Download PDF

Info

Publication number
CN110213127A
CN110213127A CN201910451317.XA CN201910451317A CN110213127A CN 110213127 A CN110213127 A CN 110213127A CN 201910451317 A CN201910451317 A CN 201910451317A CN 110213127 A CN110213127 A CN 110213127A
Authority
CN
China
Prior art keywords
test
server
script
virtualization
multitask
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
CN201910451317.XA
Other languages
English (en)
Other versions
CN110213127B (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.)
Suzhou Wave Intelligent Technology Co Ltd
Original Assignee
Suzhou Wave Intelligent Technology 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 Suzhou Wave Intelligent Technology Co Ltd filed Critical Suzhou Wave Intelligent Technology Co Ltd
Priority to CN201910451317.XA priority Critical patent/CN110213127B/zh
Publication of CN110213127A publication Critical patent/CN110213127A/zh
Application granted granted Critical
Publication of CN110213127B publication Critical patent/CN110213127B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供一种融合虚拟化多任务的自动化测试***及方法包括脚本服务器、测试机和服务器端;所述的脚本服务器、测试机分别与服务器端进行通信连接;所述的脚本服务器与测试机进行通信连接;所述的脚本服务器,用于存储测试脚本并提供脚本测试任务的服务功能;测试机,用于接收脚本服务器的指令执行自动化测试脚本;所述的服务器端,用于建立多项虚拟任务并给每个任务分配虚拟资源,通过发送远程命令执行自动化测试服务。

Description

一种融合虚拟化多任务的自动化测试***及方法
技术领域
本发明涉及服务器自动化测试技术领域,具体涉及一种融合虚拟化多任务的自动化测试***及方法。
背景技术
自动化测试是目前一种比较节省人力,提高测试效率并减少操作失误的手段。将自动化需要的软件和硬件环境搭建完成,剩下的工作只需要等待测试机台自动完成脚本的运行和收集测试数据,但其前提是准备好测试需要的软硬环境,这一过程中出现问题都可能导致后续测试失败或是数据出现误差。
目前自动化过程存在的问题,自动化测试任务多,单一主服务器平台对资源和任务的分配比较吃力,某一项自动化测试出现问题是,会影响到其他测试任务的进行,目前自动化测试大多实行串行执行的方式,对时间要求比较迫切且测试任务比较多的场景比较难以应付对主服务器的需求量过多,多任务下无法提供多台主服务器造成资源的过度使用。
发明内容
针对目前自动化测试大多实行串行执行的方式,对时间要求比较迫切且测试任务比较多的场景比较难以应付对主服务器的需求量过多,多任务下无法提供多台主服务器造成资源的过度使用的问题,本发明提供一种融合虚拟化多任务的自动化测试***及方法。
本发明的技术方案是:
第一方面,本发明技术方案提供一种融合虚拟化多任务的自动化测试***,包括脚本服务器、测试机和服务器端;
所述的脚本服务器、测试机分别与服务器端进行通信连接;
所述的脚本服务器与测试机进行通信连接;
所述的脚本服务器,用于存储测试脚本并提供脚本测试任务的服务功能;
测试机,用于接收脚本服务器的指令执行自动化测试脚本;
所述的服务器端,用于建立多项虚拟任务并给每个任务分配虚拟资源,通过发送远程命令执行自动化测试服务。
优选地,所述的服务器端包括主服务器和VM虚拟化程序模块;
主服务器,用于提供测试脚本和测试工具的远程命令,执行在DTU脚本执行过程的远程模拟操作;
VM虚拟化程序模块,用于将主服务器原单一***通过VM虚拟化分成若干单独独立功能的子***,每一个子***都能提供自动化测试服务,实现多任务的执行和任务联系分开的功能。
优选地,该***还包括FTP服务器,所述的FTP服务器与通过VM虚拟化分成的若干单独独立功能的子***进行通信连接。
优选地,服务器端还包括网络地址转换;
网络地址转换,用于将每一个通过VM虚拟化分成的单独独立功能的子***与待测的测试机台、FTP服务器和脚本服务器进行通信。
第二方面,本发明技术方案还提供一种融合虚拟化多任务的自动化测试方法,包括如下步骤:
测试机向脚本服务器发送测试请求;
脚本服务器接收请求并根据接收到的请求信息将测试脚本下载到测试机;
测试机按照测试list执行测试并在执行过程中与服务器端的测试list实施通信进行执行进度确认。
优选地,所述的测试机向脚本服务器发送测试请求的步骤之前,包括:
测试机向FTP服务器发出环境设置下载请求;
FTP会根据不同的测试请求提供不同的***环境文件和测试环境变量;
当FTP中的环境文件下载完毕并搭建完成后,执行步骤:测试机向脚本服务器发送测试请求。
优选地,所述的测试机向FTP服务器发出环境设置下载请求的步骤之前还包括:
搭建测试环境,包括:对测试机的网络和BMC进行设置,测试机分别与脚本服务器、主服务器和FTP服务器在同一网络内并能保持通信;
主服务器建立多项虚拟任务并给每个任务分配虚拟资源。
优选地,该方法还包括:当测试机执行测试list完毕后,主服务器发出数据汇总上传的执行,每个测试机将数据打包并上传到服务器端供分析确认。
优选地,该方法还包括:
当数据上传到服务器端,根据测试list中每个项的测试结果进行自动化判定,确认结果PASS/FAIL。
优选地,所述的测试list的测试项包括带宽测试、延时测试、RMT测试和读写测试。
在主自动化服务器***中植入虚拟化功能,将自动化的每一个测试功能分割开来,形成一个个独立的并能独立提供服务的子***,这样一旦有自动化测试任务需求,各子***间独立运行互不干涉,以最高的效率同时提供多项自动化测试的执行。
从以上技术方案可以看出,本发明具有以下优点:整体测试过程不需要人工干预,当机通信和测试list搭建完成后,所有的测试都执行自动化。稳定性、性能和压力测试一般需要48-72H的长期测试,这过程如果靠人力执行,对项目的整体开发进度会造成大约10%的delay。通过该自动化就是为了释放人力提供效率,在自动化测试的同时可以并行其他工作任务。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种融合虚拟化多任务的自动化测试方法的示意性流程图。
图2是本发明实施例一种融合虚拟化多任务的自动化测试的装置的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例一
如图2所示,本发明技术方案提供一种融合虚拟化多任务的自动化测试***,包括脚本服务器11、测试机33和服务器端22;
所述的脚本服务器11、测试机分别与服务器端22进行通信连接;
所述的脚本服务器11与测试机33进行通信连接;
所述的脚本服务器11,用于存储测试脚本并提供脚本测试任务的服务功能;
测试机33,用于接收脚本服务器11的指令执行自动化测试脚本;
所述的服务器端22,用于建立多项虚拟任务并给每个任务分配虚拟资源,通过发送远程命令执行自动化测试服务。
为了实现将服务器端原单一***通过VM虚拟化分成需要的单独独立功能的子***,每一个子***都能提供自动化测试服务,实现多任务的执行和任务联系分开的功能所述的服务器端包括主服务器和VM虚拟化程序模块;
主服务器44,用于提供测试脚本和测试工具的远程命令,执行在DTU脚本执行过程的远程模拟操作;
VM虚拟化程序模块,用于将主服务器原单一***通过VM虚拟化分成若干单独独立功能的子***,每一个子***都能提供自动化测试服务,实现多任务的执行和任务联系分开的功能。
需要说明的是,为了是测试过程进一步自动化,该***还包括FTP服务器66,所述的FTP服务器66与通过VM虚拟化分成的若干单独独立功能的子***进行通信连接,为测试机33和主服务器44提供测试工具,当测试机执行自动化时脚本时,需要的测试工具都会从FTP服务器中下载。
为了保证每一个子***都能与需要测试的测试机、FTP服务器和脚本服务器进行通信和命令执行,服务器端22还包括网络地址转换55;
网络地址转换55,用于将每一个通过VM虚拟化分成的单独独立功能的子***与待测的测试机台33、FTP服务器66和脚本服务器11进行通信。
需要执行自动化测试时,选择需要测试的脚本,然后将测试机33、主服务器44、FTP服务器66的IP和SSH进行端口互联,实现机台间通信互联,相互访问。在主自动化服务器***中植入虚拟化功能,将自动化的每一个测试功能分割开来,形成一个个独立的并能独立提供服务的子***,这样一旦有自动化测试任务需求,各子***间独立运行互不干涉,以最高的效率同时提供多项自动化测试的执行。
实施例二
如图1所示,本实施例需要测试3款内存的性能,性能测试内容包含数据的读写、带宽、延时和RMT测试,三款内存测试需要同时进行,测试完成后需要提交测试数据报告;具体实现上述过程的融合虚拟化多任务的自动化测试方法,包括如下步骤:
S1:搭建测试环境,包括:对测试机的网络和BMC进行设置,测试机分别与脚本服务器、主服务器和FTP服务器在同一网络内并能保持通信;
本实施例中搭建三台测试机,分别安装三款内存到测试机中,对测试机的网络和BMC进行设置,保证测试机能分别与脚本服务器、主服务器和FTP服务器在同一网络内并能相互保持通信,在这个过程中保证测试机能分别与脚本服务器、主服务器和FTP服务器能相互通信的简单方法就是相互能ping通。这里网络的作用是测试机分别从不同上述服务器中下载可用的数据,BMC的作用是获取到服务器的发出的IPMI指令,执行数据获取、快关机、机台参数设定等;
S2:主服务器建立多项虚拟任务并给每个任务分配虚拟资源;需要说明的是,测试机搭建完成后,主服务器给每个任务分配虚拟资源,保证每个测试独立运行,不存在干扰,具体来说,在主服务器中存在一个任务分配***,在***中输入每个测试机的网络IP和BMC地址,并指定需要测试项目,这样就会给每个测试机形成一个测试list。
S3:测试机向FTP服务器发出环境设置下载请求;
S4:FTP会根据不同的测试请求提供不同的***环境文件和测试环境变量;简单来说就是测试内存的就把内存需要的***环境提供给测试机,测试硬盘的就把硬盘的环境提供下载,保证测试环境的可靠稳定;
S5:当FTP中的环境文件下载完毕并搭建完成后,测试机向脚本服务器发送测试请求;
S6:脚本服务器接收请求并根据接收到的请求信息将测试脚本下载到测试机;也就是,将需要测试带宽、延时、RMT和读写的专用脚本下载到测试机中;
S7:测试机按照测试list执行测试并在执行过程中与服务器端的测试list实施通信进行执行进度确认,当出现错误或终止时,服务器端将提供日志信息,帮助问题解决。
S8:当测试机执行测试list完毕后,主服务器发出数据汇总上传的执行,每个测试机将数据打包并上传到服务器端供分析确认。
S9:当数据上传到服务器端,根据测试list中每个项的测试结果进行自动化判定,确认结果PASS/FAIL。
在主自动化服务器***中植入虚拟化功能,将自动化的每一个测试功能分割开来,形成一个个独立的并能独立提供服务的子***,这样一旦有自动化测试任务需求,各子***间独立运行互不干涉,以最高的效率同时提供多项自动化测试的执行。
整体测试过程不需要人工干预,当机通信和测试list搭建完成后,所有的测试都执行自动化。稳定性、性能和压力测试一般需要48-72H的长期测试,这过程如果靠人力执行,对项目的整体开发进度会造成大约10%的delay。通过该自动化就是为了释放人力提供效率,在自动化测试的同时可以并行其他工作任务。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种融合虚拟化多任务的自动化测试***,其特征在于,包括脚本服务器、测试机和服务器端;
所述的脚本服务器、测试机分别与服务器端进行通信连接;
所述的脚本服务器与测试机进行通信连接;
所述的脚本服务器,用于存储测试脚本并提供脚本测试任务的服务功能;
测试机,用于接收脚本服务器的指令执行自动化测试脚本;
所述的服务器端,用于建立多项虚拟任务并给每个任务分配虚拟资源,通过发送远程命令执行自动化测试服务。
2.根据权利要求1所述的融合虚拟化多任务的自动化测试***,其特征在于,所述的服务器端包括主服务器和VM虚拟化程序模块;
主服务器,用于提供测试脚本和测试工具的远程命令,执行在DTU脚本执行过程的远程模拟操作;
VM虚拟化程序模块,用于将主服务器原单一***通过VM虚拟化分成若干单独独立功能的子***,每一个子***都能提供自动化测试服务,实现多任务的执行和任务联系分开的功能。
3.根据权利要求2所述的融合虚拟化多任务的自动化测试***,其特征在于,该***还包括FTP服务器,所述的FTP服务器与通过VM虚拟化分成的若干单独独立功能的子***进行通信连接。
4.根据权利要求3所述的融合虚拟化多任务的自动化测试***,其特征在于,服务器端还包括网络地址转换;
网络地址转换,用于将每一个通过VM虚拟化分成的单独独立功能的子***与待测的测试机台、FTP服务器和脚本服务器进行通信。
5.一种融合虚拟化多任务的自动化测试方法,其特征在于,包括如下步骤:
测试机向脚本服务器发送测试请求;
脚本服务器接收请求并根据接收到的请求信息将测试脚本下载到测试机;
测试机按照测试list执行测试并在执行过程中与服务器端的测试list实施通信进行执行进度确认。
6.根据权利要求5所述的一种融合虚拟化多任务的自动化测试方法,其特征在于,所述的测试机向脚本服务器发送测试请求的步骤之前,包括:
测试机向FTP服务器发出环境设置下载请求;
FTP会根据不同的测试请求提供不同的***环境文件和测试环境变量;
当FTP中的环境文件下载完毕并搭建完成后,执行步骤:测试机向脚本服务器发送测试请求。
7.根据权利要求6所述的一种融合虚拟化多任务的自动化测试方法,其特征在于,所述的测试机向FTP服务器发出环境设置下载请求的步骤之前还包括:
搭建测试环境,包括:对测试机的网络和BMC进行设置,测试机分别与脚本服务器、主服务器和FTP服务器在同一网络内并能保持通信;
主服务器建立多项虚拟任务并给每个任务分配虚拟资源。
8.根据权利要求7所述的一种融合虚拟化多任务的自动化测试方法,其特征在于,该方法还包括:当测试机执行测试list完毕后,主服务器发出数据汇总上传的执行,每个测试机将数据打包并上传到服务器端供分析确认。
9.根据权利要求8所述的一种融合虚拟化多任务的自动化测试方法,其特征在于,该方法还包括:
当数据上传到服务器端,根据测试list中每个项的测试结果进行自动化判定,确认结果PASS/FAIL。
10.根据权利要求5所述的一种融合虚拟化多任务的自动化测试方法,其特征在于,所述的测试list的测试项包括带宽测试、延时测试、RMT测试和读写测试。
CN201910451317.XA 2019-05-28 2019-05-28 一种融合虚拟化多任务的自动化测试***及方法 Active CN110213127B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910451317.XA CN110213127B (zh) 2019-05-28 2019-05-28 一种融合虚拟化多任务的自动化测试***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910451317.XA CN110213127B (zh) 2019-05-28 2019-05-28 一种融合虚拟化多任务的自动化测试***及方法

Publications (2)

Publication Number Publication Date
CN110213127A true CN110213127A (zh) 2019-09-06
CN110213127B CN110213127B (zh) 2021-07-02

Family

ID=67789051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910451317.XA Active CN110213127B (zh) 2019-05-28 2019-05-28 一种融合虚拟化多任务的自动化测试***及方法

Country Status (1)

Country Link
CN (1) CN110213127B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102302A (ja) * 1997-09-29 1999-04-13 Hitachi Ltd ハードウェア動作確認用テストツール
CN1690976A (zh) * 2004-04-24 2005-11-02 鸿富锦精密工业(深圳)有限公司 主板自动化测试***及方法
CN101212362A (zh) * 2006-12-26 2008-07-02 中兴通讯股份有限公司 一种融合多类型测试工具的自动化测试装置及方法
CN102333005A (zh) * 2011-06-02 2012-01-25 迈普通信技术股份有限公司 自动化测试***中的测试仪控制方法
CN102662828A (zh) * 2012-03-14 2012-09-12 浪潮(北京)电子信息产业有限公司 一种实现软件自动测试的方法及装置
CN105183644A (zh) * 2015-08-20 2015-12-23 上海斐讯数据通信技术有限公司 一种多任务集成自动化测试***及方法
CN106484622A (zh) * 2016-10-18 2017-03-08 网易(杭州)网络有限公司 测试方法、装置及***
CN106649085A (zh) * 2016-09-23 2017-05-10 郑州云海信息技术有限公司 一种基于云计算的软件测试***
CN109086120A (zh) * 2018-08-03 2018-12-25 北京奇虎科技有限公司 虚拟机资源的管理方法、装置及计算设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102302A (ja) * 1997-09-29 1999-04-13 Hitachi Ltd ハードウェア動作確認用テストツール
CN1690976A (zh) * 2004-04-24 2005-11-02 鸿富锦精密工业(深圳)有限公司 主板自动化测试***及方法
CN101212362A (zh) * 2006-12-26 2008-07-02 中兴通讯股份有限公司 一种融合多类型测试工具的自动化测试装置及方法
CN102333005A (zh) * 2011-06-02 2012-01-25 迈普通信技术股份有限公司 自动化测试***中的测试仪控制方法
CN102662828A (zh) * 2012-03-14 2012-09-12 浪潮(北京)电子信息产业有限公司 一种实现软件自动测试的方法及装置
CN105183644A (zh) * 2015-08-20 2015-12-23 上海斐讯数据通信技术有限公司 一种多任务集成自动化测试***及方法
CN106649085A (zh) * 2016-09-23 2017-05-10 郑州云海信息技术有限公司 一种基于云计算的软件测试***
CN106484622A (zh) * 2016-10-18 2017-03-08 网易(杭州)网络有限公司 测试方法、装置及***
CN109086120A (zh) * 2018-08-03 2018-12-25 北京奇虎科技有限公司 虚拟机资源的管理方法、装置及计算设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
L. CRISTALDI,: ""A virtual environment for remote testing of complex systems"", 《IEEE TRANSACTIONS ON INSTRUMENTATION AND MEASUREMENT》 *
郑宇瀚,: ""基于虚拟化的云计算关键技术研究及应用"", 《中国优秀硕士学位论文全文数据库-信息科技辑》 *

Also Published As

Publication number Publication date
CN110213127B (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
US11630646B2 (en) Software defined network controller
CN107590075B (zh) 一种软件测试方法及装置
CN105005521A (zh) 测试方法及装置
US11405302B1 (en) Methods, systems, and computer readable media for network testing using configurable test infrastructure
CN105450476A (zh) 一种回归测试***及测试方法
CN106685733A (zh) 一种fc‑ae‑1553网络快速配置与自动化测试方法
CN112084008A (zh) 一种基于容器技术快速部署云管***的方法
CN102595184A (zh) 智能电视自动化测试方法及***
CN107634871B (zh) 一种连通性测试方法、装置及***
CN105653401A (zh) 应用***灾备、运维、监控和应急启停调度方法及装置
CN108833168B (zh) 一种服务器集群环境网络***及稳定性检测方法
CN111901187B (zh) 一种测试方法、装置、设备及存储介质
CN110750445A (zh) 一种yarn组件高可用性功能的测试方法、***及设备
CN105391601A (zh) 一种网管设备的性能测试方法及***
CN110620754B (zh) Nf所需资源的部署方法、装置、存储介质及电子装置
CN110213127A (zh) 一种融合虚拟化多任务的自动化测试***及方法
CN113612644B (zh) 一种传输网网元动态仿真方法及***
CN102420722A (zh) 综合组网自动化测试方法及***
CN115495381A (zh) 交互场景的测试方法、***、处理器及电子设备
CN108683543B (zh) 路由设备的更换方法及装置、存储介质、电子装置
CN105630634A (zh) 应用***灾备切换方法和装置
CN111082984A (zh) 模拟登录网络设备进行命令行交互的方法和装置
CN104902494B (zh) 一种多lte终端自动化测试***及其测试方法
CN109669699A (zh) 应用程序分发方法、ac、ap及无线网络***
CN110213783B (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
GR01 Patent grant
GR01 Patent grant