定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx

上传人:b****5 文档编号:18924099 上传时间:2023-01-02 格式:DOCX 页数:16 大小:662.91KB
下载 相关 举报
定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx_第1页
第1页 / 共16页
定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx_第2页
第2页 / 共16页
定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx_第3页
第3页 / 共16页
定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx_第4页
第4页 / 共16页
定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx

《定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx》由会员分享,可在线阅读,更多相关《定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

定制ClearQuest以通过所有者角色或组来分隔记录Word格式.docx

在我的例子中,我使用TestStudio作为模板,并解释了如何定制此模板,来按照提交者来分隔缺陷记录。

通常的步骤如下:

1.定义你的隔离方针,然后创建适当的组。

2.创建一个securitycontext记录类型。

3.修改你想要进行权限控制的记录类型,并增加一个reference字段。

4.如果需要,编写一些hook。

5.将模板应用于用户数据库,并做一些事先调整。

注意:

此方法并不限于缺陷记录;

它可以应用于任何你想进行权限控制的记录类型中。

然而,下面的场景将集中在缺陷管理上。

详细步骤

在此场景中,一个项目中的测试人员只能查看和修改他们自己提交的记录,但是测试经理组的成员可以查看所有的记录。

作为一个测试人员,每次你提交一个缺陷,缺陷的securitycontext字段会自动地将你设置为所有者。

只有ClearQuest管理员可以查看和修改securitycontext记录类型。

此例子假定你熟悉ClearQuest定制过程--我将会浏览一下这些步骤,但不是详述幕后发生了什么。

如果你对此过程比较陌生,请查看你的ClearQuest文档中的有关定制过程。

1.首先,你需要使用ClearQuestUserAdministration工具定义适当的组。

我通常为每个测试人员定义一个组,然后创建一个测试经理组。

在某种意义上,这些组代表了你的项目定义中的特定角色。

例如,图1-5显示了关于我定义的组的详细内容:

图1:

在ClearQuest中设置组

组xiaming、yangrong、zhanghan、yangrongwei和gengxueping都分别是单个测试人员的测试组。

TestManager组是测试经理角色的组。

图2:

TestManager组的定义

图3:

ClearQuest管理员的SuperAdmin组的定义

图4:

定义一个Guest组

如果经过ClearQuest管理员授权,你也可以设置一个Guest组,用于不在你的项目中的用户来访问那些缺陷记录。

图5:

为一个单独测试人员设置一个组

这个单个测试人员组的例子包括成员组Guest和TestManager。

2.打开ClearQuestDesigner,登录到你的目标schema数据库,并检出(checkout)TestStudio模版进行编辑。

增加一个新的状态无关记录类型,名为ACL(此过程的步骤如下面的图6-11所示)。

此记录类型用作securitycontext记录类型。

图6:

增加一个新的状态无关记录类型

图7:

ACL记录类型的字段定义

图8:

ACL记录类型的action定义

图9:

ACL记录类型的behavior定义

图10:

ACL记录类型的主键定义

图11:

ACL记录类型的form定义

3.修改缺省的缺陷记录类型,在缺陷记录类型中增加一个新字段。

这个字段用于对securitycontext记录的关联,如图12和13所示。

图12:

缺陷记录中的ACL字段定义

图13:

将ACL字段的behavior设置为USE_HOOK。

4.为了自动地分割缺陷,在关联字段上增加一个defaultvaluehook。

尽管ClearQuest支持两种脚本语言(VBScript和Perl),但是以下脚本的例子使用了Perl:

subacl_DefaultValue{

my($fieldname)=@_;

my$session;

my$username;

$session=$entity->

GetSession();

$username=$session->

GetUserLoginName();

$entity->

SetFieldValue($fieldname,$username);

}

5.在关联字段上增加一个permissionhook,在改变一个缺陷记录时设置控制权限。

subacl_Permission{

my($fieldname,$username)=@_;

my$result;

my$userGroups,$sessionObj;

my$AuthorizedUserGroup="

SuperAdmin"

;

#Bydefault,setthisfieldreadonly

$result=$CQPerlExt:

:

CQ_READONLY;

$sessionObj=$entity->

$userGroups=$sessionObj->

GetUserGroups();

if(!

@$userGroups){

}else{

foreach$strAnGroup(@$userGroups){

if($strAnGroupeq$AuthorizedUserGroup){

CQ_OPTIONAL;

last;

return$result;

6.在缺陷记录的action上增加一个accesscontrolhook。

在我的例子中,我在actionModify、Delete、Duplicate和Unduplicate上增加了此hook。

为了更好地维护和重用代码,我使用recordscripts来增强代码可重用性。

在一个action的accesscontrolhook中调用代码的一个例子如下:

subDefect_AccessControl{

my($actioname,$actiontype,$username)=@_;

my$params=

$actioname."

\n"

.$actiontype."

.$username;

$result=$entity-

>

FireNamedHook("

RS_AccessControl"

$params);

调用代码的一个例子,其是一个recordscript,名为RS_AccessControl:

subDefect_RS_AccessControl{

my($result);

my($param)=@_;

#recordtypenameisDefect

if(ref($param)eq"

CQEventObject"

){

#addyourCQEventObjectparameterhandling

codehere

}elsif(ref(\$param)eq"

SCALAR"

@params=split'

\n'

$param;

my$username=$params[2];

?

$fieldInfo=$entity-

GetFieldValue("

Submitter"

);

$strSubmitterName=$fieldInfo-

GetValue();

#testiftheuserbelongstogroup

"

TestManager"

$FlagYes="

yes"

$FlagNo="

no"

$AuthorizedUserGroup1="

$AuthorizedUserGroup2="

$flag=$FlagNo;

if(!

if(($strAnGroupeq$AuthorizedUserGroup1)||

($strAnGroupeq

$AuthorizedUserGroup2))

{

$flag=$FlagYes;

#testiftheuserissameasthe

submitterorbelongstogroup"

if(($usernameeq$strSubmitterName)||($flageq$FlagYes)){

$result=1;

$result=0;

#addyourhandlingcodeforothertypeparametershere,forexample:

#die("

Unknownparametertype"

7.使用用户组修改ACL记录类型上的所有action的控制权限,如图14所示。

图14:

设置控制权限

这显示了只有在"

组中的成员可以对ACL记录类型操作。

8.检入schema,并将此涉及应用到你的用户数据库中。

9.最后,ClearQuest管理员需要手工地增加一些securitycontext记录,这些记录与每个测试人员组关联在一起(图15)。

图15:

securitycontext记录

注释:

在此设计中,ACL记录的名字应当与提交者的userid完全一样。

例如,在图15中,如果一个提交者的userid是xiaming,那么相应的ACL记录的名字也是xiaming。

不错,这并不是那么难,是不是?

现在,你可以自己尝试设计,来看一下缺陷记录是否完全按照提交者分隔开了。

如果系统没有准确地分隔缺陷,重新再进行这些步骤。

祝你好运!

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

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1