指定用户对高权限进程自动化测试的方法及装置.pdf

上传人:a1 文档编号:4038015 上传时间:2018-08-12 格式:PDF 页数:16 大小:1.01MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510148578.6

申请日:

2015.03.31

公开号:

CN104699618A

公开日:

2015.06.10

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20150331|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

北京奇虎科技有限公司; 奇智软件(北京)有限公司

发明人:

刘双

地址:

100088北京市西城区新街口外大街28号D座112室(德胜园区)

优先权:

专利代理机构:

北京市浩天知识产权代理事务所(普通合伙)11276

代理人:

宋菲; 刘云贵

PDF下载: PDF下载
内容摘要

本发明公开了一种指定用户对高权限进程自动化测试的方法及装置,高权限进程要求的用户测试权限高于指定用户的测试权限,其中方法包括:在以指定用户登录系统后,将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限;执行高权限进程的测试用例;判断测试用例对应的系统接口调用是否需要指定用户执行;若是,则模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。本方案不仅简单有效地解决了测试过程中需要高权限的问题,而且还避免了提权后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。

权利要求书

权利要求书
1.  一种指定用户对高权限进程自动化测试的方法,所述高权限进程要求 的用户测试权限高于所述指定用户的测试权限,所述方法包括:
在以所述指定用户登录系统后,将提权工具复制到系统目录下,使所述 高权限进程具有其所要求的用户测试权限;
执行所述高权限进程的测试用例;
判断所述测试用例对应的系统接口调用是否需要指定用户执行;若是, 则模拟所述指定用户,通过模拟的指定用户调用所述测试用例对应的系统接 口。

2.  根据权利要求1所述的方法,其特征在于,将提权工具复制到系统目 录下,使所述高权限进程具有其所要求的用户测试权限进一步包括:将提权 工具复制到系统目录下,运行命令提示符,接收所述指定用户输入的命令语 句,触发运行所述提权工具;所述命令语句包括所述高权限进程的名称。

3.  根据权利要求2所述的方法,其特征在于,触发运行所述提权工具进 一步包括:根据对话框中显示消息的点击命令,触发运行所述提权工具;所 述对话框为接收所述命令语句后弹出的交互式服务对话框。

4.  根据权利要求1-3任一项所述的方法,其特征在于,模拟所述指定用 户进一步包括:
调用win32security.LogonUser系统接口,获取模拟所述指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟所述指定用 户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。

5.  根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括: 判断所述测试用例是否执行完成;若否,则继续执行所述测试用例。

6.  根据权利要求1-5任一项所述的方法,其特征在于,所述测试用例对 应的系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表 项、读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关 闭注册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。

7.  一种指定用户对高权限进程自动化测试的装置,所述高权限进程要求 的用户测试权限高于所述指定用户的测试权限,所述装置包括:
提权模块,适于在以所述指定用户登录系统后,将提权工具复制到系统 目录下,使所述高权限进程具有其所要求的用户测试权限;
用例执行模块,适于执行所述高权限进程的测试用例;
第一判断模块,适于判断所述测试用例对应的系统接口调用是否需要指 定用户执行;
模拟调用模块,适于在所述第一判断模块判断出所述测试用例对应的系 统接口调用需要指定用户执行的情况下,模拟所述指定用户,通过模拟的指 定用户调用所述测试用例对应的系统接口。

8.  根据权利要求7所述的装置,其特征在于,所述提权模块进一步适于: 将提权工具复制到系统目录下,运行命令提示符,接收所述指定用户输入的 命令语句,触发运行所述提权工具;所述命令语句包括所述高权限进程的名 称。

9.  根据权利要求8所述的装置,其特征在于,所述提权模块还适于:根 据对话框中显示消息的点击命令,触发运行所述提权工具;所述对话框为接 收所述命令语句后弹出的交互式服务对话框。

10.  根据权利要求7-9任一项所述的装置,其特征在于,所述模拟调用 模块进一步适于:
调用win32security.LogonUser系统接口,获取模拟所述指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟所述指定用 户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。

说明书

说明书指定用户对高权限进程自动化测试的方法及装置
技术领域
本发明涉及互联网技术领域,具体涉及一种指定用户对高权限进程自动 化测试的方法及装置。
背景技术
进程的测试是指在预设条件下对系统或程序进行测试,从而评估系统或 程序的运行结果。目前,大部分的自动化测试进程都是Administrator管理员 用户执行的,因为Administrator管理员用户拥有较高的权限,这样可以保证 在测试进程执行的过程中有足够的权限去操作常用的系统资源。其中,会有 一些自动化测试要求在特殊的测试条件下进行,比如,测试逻辑不仅要求User 普通用户去执行自动化测试,并且还要求测试进程具有比当前用户要高的权 限,如System用户的权限,这样的测试条件就会导致很多常规的测试代码因 为权限问题而执行失败。
人们在面对上述存在的问题时,通常采用以下两种解决方法:
第一种解决方法是:通过User普通用户执行手动测试操作。但是由于第 一种解决方法采用的是手动测试,所以存在着对人力、时间或硬件资源的浪 费以及测试效率低的问题。
在Windows系统中,一般的User普通用户都默认开启UAC(User Account  Control,用户帐户控制),UAC要求用户在执行可能会影响计算机运行的操作 或执行更改影响其他用户的设置的操作之前,提供权限或管理员密码,从而 帮助防止了恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或 对计算机进行更改,提高了系统安全。因此第二种解决方法是:通过关闭UAC 来解决部分权限问题,但是第二种解决方法会造成测试环境与最终用户环境 不一致,而且,即使关闭了UAC,对于当前用户权限低于测试进程权限的情 况,自动化程序与测试进程之间的一些如窗口发送消息,进程内存读写等的 交互操作仍然无法完成。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分 地解决上述问题的一种指定用户对高权限进程自动化测试的方法及装置。
根据本发明的一个方面,提供了一种指定用户对高权限进程自动化测试 的方法,高权限进程要求的用户测试权限高于指定用户的测试权限,该方法 包括:
在以指定用户登录系统后,将提权工具复制到系统目录下,使高权限进 程具有其所要求的用户测试权限;
执行高权限进程的测试用例;
判断测试用例对应的系统接口调用是否需要指定用户执行;若是,则模 拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。
进一步,将提权工具复制到系统目录下,使高权限进程具有其所要求的 用户测试权限进一步包括:将提权工具复制到系统目录下,运行命令提示符, 接收指定用户输入的命令语句,触发运行提权工具;命令语句包括高权限进 程的名称。
进一步,触发运行提权工具进一步包括:根据对话框中显示消息的点击 命令,触发运行提权工具;对话框为接收命令语句后弹出的交互式服务对话 框。
进一步,模拟指定用户进一步包括:
调用win32security.LogonUser系统接口,获取模拟指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
进一步,该指定用户对高权限进程自动化测试的方法还包括:判断测试 用例是否执行完成;若否,则继续执行测试用例。
进一步,测试用例对应的系统接口包括以下系统接口中的一个或多个: 打开注册表、添加注册表项、读取注册表项值、设置注册表项值、删除注册 表项、删除注册表值、关闭注册表、得到桌面目录、获取系统文件夹路径以 及获取系统特殊路径。
根据本发明的另一方面,提供了一种指定用户对高权限进程自动化测试 的装置,高权限进程要求的用户测试权限高于指定用户的测试权限,该装置 包括:
提权模块,适于在以指定用户登录系统后,将提权工具复制到系统目录 下,使高权限进程具有其所要求的用户测试权限;
用例执行模块,适于执行高权限进程的测试用例;
第一判断模块,适于判断测试用例对应的系统接口调用是否需要指定用 户执行;
模拟调用模块,适于在第一判断模块判断出测试用例对应的系统接口调 用需要指定用户执行的情况下,模拟指定用户,通过模拟的指定用户调用测 试用例对应的系统接口。
进一步,提权模块进一步适于:将提权工具复制到系统目录下,运行命 令提示符,接收指定用户输入的命令语句,触发运行提权工具;命令语句包 括高权限进程的名称。
进一步,提权模块还适于:根据对话框中显示消息的点击命令,触发运 行提权工具;对话框为接收命令语句后弹出的交互式服务对话框。
进一步,模拟调用模块进一步适于:
调用win32security.LogonUser系统接口,获取模拟指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
进一步,该指定用户对高权限进程自动化测试的装置还包括:第二判断 模块,适于判断测试用例是否执行完成;若否,则触发用例执行模块继续执 行测试用例。
进一步,测试用例对应的系统接口包括以下系统接口中的一个或多个: 打开注册表、添加注册表项、读取注册表项值、设置注册表项值、删除注册 表项、删除注册表值、关闭注册表、得到桌面目录、获取系统文件夹路径以 及获取系统特殊路径。
根据本发明提供的技术方案,在高权限进程要求的用户测试权限高于指 定用户的测试权限的情况下,通过将提权工具复制到系统目录下,使高权限 进程具有其所要求的用户测试权限,并在执行高权限进程的测试用例过程中, 通过模拟的指定用户调用需要指定用户执行的测试用例对应的系统接口。本 发明提供的技术方案不仅简单有效地解决了测试过程中需要高权限的问题, 而且还避免了提权后系统接口调用失败,丰富了自动化测试场景,优化了自 动化测试方法。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技 术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它 目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本 领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的, 而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示 相同的部件。在附图中:
图1示出了根据本发明一个实施例的指定用户对高权限进程自动化测试 的方法的流程示意图;
图2示出了根据本发明另一个实施例的指定用户对高权限进程自动化测 试的方法的流程示意图;
图3示出了根据本发明一个实施例的指定用户对高权限进程自动化测试 的装置的功能结构示意图;
图4示出了根据本发明另一个实施例的指定用户对高权限进程自动化测 试的装置的功能结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示 了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不 应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地 理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的指定用户对高权限进程自动化测试 的方法的流程示意图,其中,高权限进程要求的用户测试权限高于指定用户 的测试权限,如图1所示,该方法包括如下步骤:
步骤S100,在以指定用户登录系统后,将提权工具复制到系统目录下, 使高权限进程具有其所要求的用户测试权限。
例如,提权工具可以为Pstools工具包中的PsExec.exe工具。PsExec.exe 工具可以在Windows Vista、NT 4.0、Win2K、Windows XP和Server 2003(包 括64位版本的Windows)系统上运行。使用PsExec.exe工具不仅可以执行其 他系统上的进程,并且可以获得与控制台应用程序相当的完全交互性。将 PsExec.exe工具作为提权工具可以简单有效地获取所要求的用户测试权限,具 体方法包括:将PsExec.exe工具复制到系统目录下,例如system32系统目录 下,使高权限进程具有其所要求的用户测试权限。
另外,当高权限进程所要求的用户测试权限为System用户权限时,还可 以通过以sc指令为基础的脚本创建一个交互式服务,其中所有的服务都是由 System用户所创建和运行的,从而使高权限进程具有其所要求的用户测试权 限。
步骤S101,执行高权限进程的测试用例。
在使高权限进程具有其所要求的用户测试权限之后,开始执行高权限进 程的测试用例。
步骤S102,判断测试用例对应的系统接口调用是否需要指定用户执行, 若是,执行步骤S103。
由于一些特殊的测试条件不仅要求用户测试权限高于指定用户的测试权 限,而且测试逻辑还会要求指定用户去执行自动化测试,所以为了成功执行 测试用例对应的系统接口调用,需要对测试用例对应的系统接口调用是否需 要指定用户执行进行判断。
例如,测试用例对应的系统接口可以包括以下系统接口中的一个或多个: RegOpenKey打开注册表、RegOpenKeyEx打开注册表、RegCreateKey添加注 册表项、RegCreateKeyEx添加注册表项、RegQueryValue读取注册表项值、 RegQueryValueEx读取注册表项值、RegSetValue设置注册表项值、 RegSetValueEx设置注册表项值、RegDeleteKey删除注册表项、 RegDeleteKeyEx删除注册表项、RegDeleteValue删除注册表值、RegCloseKey 关闭注册表、SHGetDesktopFolder得到桌面目录、SHGetFolderPath获取系统 文件夹路径以及SHGetSpecialFolderLocation获取系统特殊路径。
如果经判断得到测试用例对应的系统接口调用需要指定用户执行,则执 行步骤S103。
步骤S103,模拟指定用户,通过模拟的指定用户调用测试用例对应的系 统接口。
经判断得到测试用例对应的系统接口调用需要指定用户执行,则进行模 拟指定用户,并通过模拟的指定用户调用测试用例对应的系统接口,以确保 需要指定用户执行的测试用例对应的系统接口调用成功。
根据本实施例提供的指定用户对高权限进程自动化测试的方法,在高权 限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过将提权 工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限,并在 执行高权限进程的测试用例的过程中,通过模拟的指定用户调用需要指定用 户执行的测试用例对应的系统接口。本发明提供的技术方案解决了指定用户 对高权限进程自动化测试的问题,不仅简单有效地使高权限进程具有其所要 求的用户测试权限,而且还避免了提权后系统接口调用失败,丰富了自动化 测试场景,优化了自动化测试方法。
图2示出了根据本发明另一个实施例的指定用户对高权限进程自动化测 试的方法的流程示意图,其中,高权限进程要求的用户测试权限高于指定用 户的测试权限,如图2所示,该方法开始后包括如下步骤:
步骤S200,在以指定用户登录系统后,将提权工具复制到系统目录下。
将PsExec.exe工具作为提权工具可以简单有效地获取所要求的用户测试 权限。具体地,在以指定用户登录系统后,可将PsExec.exe工具作为提权工 具,需要将PsExec.exe工具复制到系统目录下,如system32系统目录下。
步骤S201,运行命令提示符,接收指定用户输入的命令语句,触发运行 提权工具。
具体地,将PsExec.exe工具复制到系统目录下之后,运行CMD命令提示 符,接收指定用户输入的命令语句,其中,该命令语句包括高权限进程的名 称。
例如,需要运行的高权限进程是:D:\run.bat,则所接收的指定用户输入 的命令语句为psexec-i-d-s/accepteula D:\run.bat;又如,需要运行的高权限 进程是:1.exe,则所接收的指定用户输入的命令语句为psexec-i-d-s /accepteula 1.exe。
在接收指定用户输入的命令语句之后,需要触发运行提权工具。触发运 行提权工具的具体方法可包括:根据对话框中显示消息的点击命令,触发运 行提权工具,从而使高权限进程具有其所要求的用户测试权限。其中,对话 框为接收命令语句后弹出的交互式服务对话框。
步骤S202,执行高权限进程的测试用例。
经过步骤S201之后,高权限进程已经具有其所要求的用户测试权限,则 开始执行高权限进程的测试用例。
步骤S203,判断测试用例对应的系统接口调用是否需要指定用户执行; 若是,则执行步骤S204;若否,则执行步骤S207。
由于在一些特殊的测试条件下,测试逻辑还会要求指定用户去执行自动 化测试,所以为了成功执行测试用例对应的系统接口调用,需要对测试用例 对应的系统接口调用是否需要指定用户执行进行判断。
在前一个实施例中,已列举了测试用例对应的系统接口包括的内容,此 处不再赘述。
如果经判断得到测试用例对应的系统接口调用需要指定用户执行,则执 行步骤S204;如果经判断得到测试用例对应的系统接口调用不需要指定用户 执行,则执行步骤S207。
步骤S204,调用win32security.LogonUser系统接口,获取模拟指定用户 的令牌。
令牌代表了指定用户所拥有的权限,或者也可以通过执行用于获取令牌 的进程获取模拟指定用户的令牌。
步骤S205,模拟指定用户,通过模拟的指定用户调用测试用例对应的系 统接口。
win32security.ImpersonateLoggedOnUser系统接口的作用是让当前进程模 拟一个指定用户。在获取模拟指定用户的令牌之后,通过调用 win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户,然后通过 模拟的指定用户调用测试用例对应的系统接口。在模拟指定用户完成上述测 试用例对应的系统接口的调用后,为了保证正常调用其他的测试用例对应的 系统接口,需要调用RevertToSelf系统接口来取消所模拟的指定用户,即待 RevertToSelf系统接口被调用时,取消所模拟的指定用户。
步骤S206,判断测试用例是否执行完成;若是,则该方法结束;若否, 则继续执行步骤S202。
为了保证高权限进程的测试用例全部执行完成,需要判断测试用例是否 执行完成。如果经判断得到测试用例已经执行完成,则该方法结束;如果经 判断得到测试用例没有执行完成,则继续执行步骤S202。
步骤S207,调用测试用例对应的系统接口。
如果经步骤S203判断得到测试用例对应的系统接口调用不需要指定用户 执行,则直接调用测试用例对应的系统接口。在完成步骤S207之后,执行步 骤S206。
根据本实施例提供的指定用户对高权限进程自动化测试的方法,在高权 限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过提权工 具,使高权限进程具有其所要求的用户测试权限,并在执行高权限进程的测 试用例的过程中,通过调用win32security.LogonUser等系统接口实现模拟指 定用户,并以模拟的指定用户调用需要指定用户执行的测试用例对应的系统 接口。本发明提供的技术方案解决了指定用户对高权限进程自动化测试的问 题,不仅简单有效地使高权限进程具有其所要求的用户测试权限,而且还通 过调用win32security.LogonUser等系统接口实现模拟指定用户,避免了提权 后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。
图3示出了根据本发明一个实施例的指定用户对高权限进程自动化测试 的装置的功能结构示意图,其中,高权限进程要求的用户测试权限高于指定 用户的测试权限,如图3所示,该装置包括:提权模块310、用例执行模块 320、第一判断模块330和模拟调用模块340。
提权模块310,适于在以指定用户登录系统后,将提权工具复制到系统目 录下,使高权限进程具有其所要求的用户测试权限。
例如,当将PsExec.exe工具作为提权工具时,提权模块310将PsExec.exe 工具复制到系统目录下,例如system32系统目录下,使高权限进程具有其所 要求的用户测试权限。
另外,当高权限进程所要求的用户测试权限为System用户权限时,提权 模块310还可以通过以sc指令为基础的脚本创建一个交互式服务,其中所有 的服务都是由System用户所创建和运行的,从而使高权限进程具有其所要求 的用户测试权限。
用例执行模块320,适于执行高权限进程的测试用例。
在使高权限进程具有其所要求的用户测试权限之后,用例执行模块320 开始执行高权限进程的测试用例。
第一判断模块330,适于判断测试用例对应的系统接口调用是否需要指定 用户执行。
由于一些特殊的测试条件不仅要求用户测试权限高于指定用户的测试权 限,而且测试逻辑还会要求指定用户去执行自动化测试,所以为了成功执行 测试用例对应的系统接口调用,需要第一判断模块330对测试用例对应的系 统接口调用是否需要指定用户执行进行判断。
例如,第一判断模块330所判断的测试用例对应的系统接口可以包括以 下系统接口中的一个或多个:RegOpenKey打开注册表、RegOpenKeyEx打开 注册表、RegCreateKey添加注册表项、RegCreateKeyEx添加注册表项、 RegQueryValue读取注册表项值、RegQueryValueEx读取注册表项值、 RegSetValue设置注册表项值、RegSetValueEx设置注册表项值、RegDeleteKey 删除注册表项、RegDeleteKeyEx删除注册表项、RegDeleteValue删除注册表 值、RegCloseKey关闭注册表、SHGetDesktopFolder得到桌面目录、 SHGetFolderPath获取系统文件夹路径以及SHGetSpecialFolderLocation获取系 统特殊路径。
如果经第一判断模块330判断得到测试用例对应的系统接口调用需要指 定用户执行,则启动模拟调用模块340。
模拟调用模块340,适于在第一判断模块330判断出测试用例对应的系统 接口调用需要指定用户执行的情况下,模拟指定用户,通过模拟的指定用户 调用测试用例对应的系统接口。
根据本实施例提供的指定用户对高权限进程自动化测试的装置,在高权 限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过提权模 块使高权限进程具有其所要求的用户测试权限,并在用例执行模块执行高权 限进程的测试用例的过程中,对于第一判断模块判断出需要指定用户执行的 测试用例对应的系统接口,模拟调用模块通过模拟的指定用户调用。该装置 解决了指定用户对高权限进程自动化测试的问题,不仅简单有效地使高权限 进程具有其所要求的用户测试权限,而且还避免了提权后系统接口调用失败, 丰富了自动化测试场景,优化了自动化测试方法。
图4示出了根据本发明另一个实施例的指定用户对高权限进程自动化测 试的装置的功能结构示意图,其中,高权限进程要求的用户测试权限高于指 定用户的测试权限,如图4所示,该装置包括:提权模块410、用例执行模块 420、第一判断模块430、模拟调用模块440和第二判断模块450。
提权模块410,适于在以指定用户登录系统后,将提权工具复制到系统目 录下,运行命令提示符,接收指定用户输入的命令语句,触发运行提权工具。
具体地,提权模块410可将PsExec.exe工具作为提权工具,需要将 PsExec.exe工具复制到系统目录下,如system32系统目录下,运行CMD命 令提示符,接收指定用户输入的命令语句,其中,该命令语句包括高权限进 程的名称。
例如,需要运行的高权限进程是:D:\run.bat,则提权模块410所接收的 指定用户输入的命令语句为psexec-i-d-s/accepteula D:\run.bat;又如,需要 运行的高权限进程是:1.exe,则提权模块410所接收的指定用户输入的命令 语句为psexec-i-d-s/accepteula 1.exe。
提权模块410进一步适于:根据对话框中显示消息的点击命令,触发运 行提权工具。
在提权模块410接收指定用户输入的命令语句之后,还需要触发运行提 权工具,具体地,可以根据对话框中显示消息的点击命令,触发运行提权工 具,从而使高权限进程具有其所要求的用户测试权限。其中,对话框为接收 命令语句后弹出的交互式服务对话框。
用例执行模块420,适于执行高权限进程的测试用例。
在使高权限进程具有其所要求的用户测试权限之后,用例执行模块420 开始执行高权限进程的测试用例。
第一判断模块430,适于判断测试用例对应的系统接口调用是否需要指定 用户执行。
由于在一些特殊的测试条件下,测试逻辑还会要求指定用户去执行自动 化测试,所以为了成功执行测试用例对应的系统接口调用,需要第一判断模 块430对测试用例对应的系统接口调用是否需要指定用户执行进行判断。
在前一个实施例装置中,已列举了第一判断模块所判断的测试用例对应 的系统接口包括的内容,此处不再赘述。
如果经第一判断模块430判断得到测试用例对应的系统接口调用需要指 定用户执行,则启动模拟调用模块440;如果经第一判断模块430判断得到测 试用例对应的系统接口调用不需要指定用户执行,则启动第二判断模块450。
模拟调用模块440,适于在第一判断模块判断出测试用例对应的系统接口 调用需要指定用户执行的情况下,调用win32security.LogonUser系统接口, 获取模拟指定用户的令牌;调用win32security.ImpersonateLoggedOnUser系统 接口,模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口; 待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
在获取模拟指定用户的令牌之后,通过调用 win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户,然后通过 模拟的指定用户调用测试用例对应的系统接口。在模拟指定用户完成上述测 试用例对应的系统接口的调用后,为了保证正常调用其他的测试用例对应的 系统接口,需要调用RevertToSelf系统接口来取消所模拟的指定用户。
第二判断模块450,适于判断测试用例是否执行完成;若否,则触发用例 执行模块420继续执行测试用例。
为了保证高权限进程的测试用例全部执行完成,需要第二判断模块450 判断测试用例是否执行完成。如果经第二判断模块450判断得到测试用例没 有执行完成,则继续启动用例执行模块420。
根据本实施例提供的指定用户对高权限进程自动化测试的装置,在高权 限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过提权模 块使高权限进程具有其所要求的用户测试权限,并在用例执行模块执行高权 限进程的测试用例的过程中,对于第一判断模块判断出需要指定用户执行的 测试用例对应的系统接口,模拟调用模块通过模拟的指定用户调用,为了保 证高权限进程的测试用例全部执行完成,还设置有第二判断模块用于判断测 试用例是否执行完成。该装置解决了指定用户对高权限进程自动化测试的问 题,不仅简单有效地使高权限进程具有其所要求的用户测试权限,而且还通 过调用win32security.LogonUser等系统接口实现模拟指定用户,避免了提权 后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固 有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述, 构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定 编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容, 并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发 明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详 细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或 多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被 一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的 方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中 所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的 那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具 体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要 求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自 适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以 把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可 以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者 单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴 随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或 者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相 似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它 实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合 意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利 要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器 上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理 解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本 发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现 为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如, 计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算 机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从 因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并 且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施 例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求 的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元 件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借 助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列 举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬 件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可 将这些单词解释为名称。
本发明公开了:
A1、一种指定用户对高权限进程自动化测试的方法,所述高权限进程要 求的用户测试权限高于所述指定用户的测试权限,所述方法包括:
在以所述指定用户登录系统后,将提权工具复制到系统目录下,使所述 高权限进程具有其所要求的用户测试权限;
执行所述高权限进程的测试用例;
判断所述测试用例对应的系统接口调用是否需要指定用户执行;若是, 则模拟所述指定用户,通过模拟的指定用户调用所述测试用例对应的系统接 口。
A2、根据A1所述的方法,其特征在于,将提权工具复制到系统目录下, 使所述高权限进程具有其所要求的用户测试权限进一步包括:将提权工具复 制到系统目录下,运行命令提示符,接收所述指定用户输入的命令语句,触 发运行所述提权工具;所述命令语句包括所述高权限进程的名称。
A3、根据A2所述的方法,其特征在于,触发运行所述提权工具进一步 包括:根据对话框中显示消息的点击命令,触发运行所述提权工具;所述对 话框为接收所述命令语句后弹出的交互式服务对话框。
A4、根据A1-A3任一项所述的方法,其特征在于,模拟所述指定用户进 一步包括:
调用win32security.LogonUser系统接口,获取模拟所述指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟所述指定用 户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
A5、根据A1-A4任一项所述的方法,其特征在于,所述方法还包括:判 断所述测试用例是否执行完成;若否,则继续执行所述测试用例。
A6、根据A1-A5任一项所述的方法,其特征在于,所述测试用例对应的 系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表项、 读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关闭注 册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。
B7、一种指定用户对高权限进程自动化测试的装置,所述高权限进程要 求的用户测试权限高于所述指定用户的测试权限,所述装置包括:
提权模块,适于在以所述指定用户登录系统后,将提权工具复制到系统 目录下,使所述高权限进程具有其所要求的用户测试权限;
用例执行模块,适于执行所述高权限进程的测试用例;
第一判断模块,适于判断所述测试用例对应的系统接口调用是否需要指 定用户执行;
模拟调用模块,适于在所述第一判断模块判断出所述测试用例对应的系 统接口调用需要指定用户执行的情况下,模拟所述指定用户,通过模拟的指 定用户调用所述测试用例对应的系统接口。
B8、根据B7所述的装置,其特征在于,所述提权模块进一步适于:将提 权工具复制到系统目录下,运行命令提示符,接收所述指定用户输入的命令 语句,触发运行所述提权工具;所述命令语句包括所述高权限进程的名称。
B9、根据B8所述的装置,其特征在于,所述提权模块还适于:根据对话 框中显示消息的点击命令,触发运行所述提权工具;所述对话框为接收所述 命令语句后弹出的交互式服务对话框。
B10、根据B7-B9任一项所述的装置,其特征在于,所述模拟调用模块进 一步适于:
调用win32security.LogonUser系统接口,获取模拟所述指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟所述指定用 户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
B11、根据B7-B10任一项所述的装置,其特征在于,所述装置还包括: 第二判断模块,适于判断所述测试用例是否执行完成;若否,则触发所述用 例执行模块继续执行所述测试用例。
B12、根据B7-B11任一项所述的装置,其特征在于,所述测试用例对应 的系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表项、 读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关闭注 册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。

指定用户对高权限进程自动化测试的方法及装置.pdf_第1页
第1页 / 共16页
指定用户对高权限进程自动化测试的方法及装置.pdf_第2页
第2页 / 共16页
指定用户对高权限进程自动化测试的方法及装置.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《指定用户对高权限进程自动化测试的方法及装置.pdf》由会员分享,可在线阅读,更多相关《指定用户对高权限进程自动化测试的方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明公开了一种指定用户对高权限进程自动化测试的方法及装置,高权限进程要求的用户测试权限高于指定用户的测试权限,其中方法包括:在以指定用户登录系统后,将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限;执行高权限进程的测试用例;判断测试用例对应的系统接口调用是否需要指定用户执行;若是,则模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。本方案不仅简单有效地解决了测试过程中。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1