BugFree API原理:通过http协议向api.php发送请求,api.php将根据请求作出相应的操作和输出相应的结果。
预定义常量说明:
1.行分隔符:API_NEWLINE。ASCII码为03的字符,在php中可以用chr(0x03)获得
2.列分隔符:API_DEVIDER。ASCII码为04的字符,在php中可以用chr(0x04)获得
3.加密KEY:API_KEY。加密时使用的附加码。
以上三个常量定义在Include/Api.inc.php中,出于安全考虑,建议您修改API_KEY的值。
接口说明约定:
1.以$符号开头的均表示是变量
2.以下接口说明均采用GET请求方式
各个接口方法说明:
1. getsid
描述:向BugFree系统获取一个session会话,为后面的方法提供保持会话的session。
输入:api.php?mode=getsid
参数:
mode,接口方法名称
输入:
成功:
返回:sessionname和sessionid信息。
格式:字符串,分四个子段,子段之间用API_NEWLINE分隔,子段内的列之间用API_DEVIDER分隔
第一段:success
第二段:sessionname sessionid rand
第三段:$sessionname $sessionid $rand (第二段对应的值)
第四段:md5hash(前三段的md5值,用于校验)
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。
2.login接口:
描述:使用用户名和加密后的密码登陆BugFree系统。
输入:api.php?mode=login&username=$username&auth=$auth&$sessionname=$sessionid
参数:
mode,接口方法名称
username,用户名
auth,密码校验值。
auth算法:md5(md5($username . $userpassword) . API_KEY . $rand)
其中$username为用户名,$userpassword为该用户在数据库中存储的加密后的密码(一般为密码md5后的值),$rand为getsid方法获得的rand值。
sessionname和sessionid,可以由getsid方法获得(下同)
输出:
成功:
返回:成功信息和过期时间戳
格式:字符串,分四个子段,子段之间用API_NEWLINE分隔,子段内的列之间用API_DEVIDER分隔
第一段:success
第二段:timeout
第三段:$timeout
第四段:md5hash(前三段的md5值,用于校验)
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。
3.getbug接口:
描述:获得bug信息
输入:api.php?mode=getbug&BugID=$BugID&charset=$Charset&$sessionname=$sessionid
参数:
mode,接口方法名称
charset,请求串的编码,不指定该参数则默认为UTF-8(以下接口均可以使用该参数,不再重复说明)
BugID,Bug的ID号
输出:
成功:
返回:Bug每个字段的信息
格式:字符串,分四个子段,子段之间用API_NEWLINE分隔,子段内的列之间用API_DEVIDER分隔
第一段:success
第二段:BugID ProjectID ProjectName ModuleID ModulePath BugTitle BugSeverity BugPriority BugType BugOS BugBrowser BugMachine HowFound ReproSteps BugStatus LinkID CaseID DuplicateID MailTo OpenedBy OpenedDate OpenedBuild AssignedTo AssignedDate ResolvedBy Resolution ResolvedBuild ResolvedDate ClosedBy ClosedDate LastEditedBy LastEditedDate ModifiedBy BugKeyword ResultID CustomField1 CustomField2 CustomField3 IsDroped BugSubStatus
第三段:以上各个字段的值
第四段:md5hash(前三段的md5值,用于校验)
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。
4.getcase接口
参考getbug接口
5.getresult接口
参考getbug接口
6.addbug接口
描述:新增Bug
输入:api.php?mode=addbug&ProjectID=$ProjectID&ModuleID=$ModuleID&BugTitle=$BugTitle&ReproSteps=$ReproSteps&AssignedTo=$AssignedTo&BugSeverity=$BugSeverity&BugType=$BugType&HowFound=$HowFound&OpenedBuild=$OpenedBuild&ReplyNote=$ReplyNote&$sessionname=$sessionid
参数:
mode,接口方法名称
ProjectID,项目id
ModuleID,模块id
BugTitle,bug标题
ReproSteps,重现步骤
AssignedTo,指派给
BugSeverity,严重程度
BugType,Bug类型
HowFound,如何发现
OpenedBuild,创建Build
ReplyNote,注释信息
注:在增加bug时,可以省略部分参数,参数的默认值可以在Include/Api.inc.php中的$_CFG['API']['FieldsDefauleValue']['Bug']设定。
输出:
成功:
返回:成功信息和新增的BugID
格式:字符串,分四个子段,子段之间用API_NEWLINE分隔,子段内的列之间用API_DEVIDER分隔
第一段:success
第二段:BugID
第三段:$BugID
第四段:md5hash(前三段的md5值,用于校验)
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。
7.addcase接口
描述:新增Case
输入:api.php?mode=addcase&ProjectID=$ProjectID&...&$sessionname=$sessionid(更多参数如下)
参数:
mode,接口方法名称
ProjectID,项目ID
ModuleID,模块ID
CaseTitle,Case标题
CaseSteps,Case步骤
CaseStatus,Case状态
CaseType,Case类型
AssignedTo,指派人
CasePriority,Case优先级
CaseMethod,测试方法
ReplyNote,注释信息
ScriptedBy,脚本编写者
ScriptedDate,脚本编写时间
ScriptStatus,脚本状态
ScriptLocation,脚本地址
注:在增加case时,可以省略部分参数,参数的默认值可以在Include/Api.inc.php中$_CFG['API']['FieldsDefauleValue']['Case']设定。
输出:
成功:
返回:成功信息和新增的CaseID
格式:字符串,分四个子段,子段之间用API_NEWLINE分隔,子段内的列之间用API_DEVIDER分隔
第一段:success
第二段:CaseID
第三段:$CaseID
第四段:md5hash(前三段的md5值,用于校验)
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。
8.addresult接口
描述:新增Result
输入:api.php?mode=addresult&CaseID=$CaseID&ResultValue=$ResultValue&...&$sessionname=$sessionid(更多参数如下)
参数:
mode,接口方法名称
CaseID,CaseID
ResultValue,Result结果(Pass,Fail)
ResultBuild,运行Build
ResultStatus,运行状态
CaseType,Case类型
AssignedTo,指派给
ReplyNote,注释
注:在增加result时,可以省略部分参数,参数的默认值可以在Include/Api.inc.php中$_CFG['API']['FieldsDefauleValue']['Result']设定。
输出:
成功:
返回:成功信息和新增的ResultID
格式:字符串,分四个子段,子段之间用API_NEWLINE分隔,子段内的列之间用API_DEVIDER分隔
第一段:success
第二段:ResultID
第三段:$ResultID
第四段:md5hash(前三段的md5值,用于校验)
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。
9.updatebug接口
描述:编辑Bug信息
输入:api.php?mode=updatebug&BugID=$BugID&ProjectID=$ProjectID&ModuleID=$ModuleID&BugTitle=$BugTitle&ReproSteps=$ReproSteps&AssignedTo=$AssignedTo&BugSeverity=$BugSeverity&BugType=$BugType&HowFound=$HowFound&OpenedBuild=$OpenedBuild&ReplyNote=$ReplyNote&$sessionname=$sessionid
参数:
mode,接口方法名称
BugID, 需要编辑的BugID
ProjectID,项目id
ModuleID,模块id
BugTitle,bug标题
ReproSteps,重现步骤
AssignedTo,指派给
BugSeverity,严重程度
BugType,Bug类型
HowFound,如何发现
OpenedBuild,创建Build
ReplyNote,注释信息
注:在编辑bug时,可以省略部分参数,参数的默认值可以在Include/Api.inc.php中的$_CFG['API']['FieldsDefauleValue']['Bug']设定。
输出:
成功:
返回:成功信息
格式:一行字符串:
success
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。
9.updatecase接口
描述:编辑Case信息
输入:api.php?mode=editcase&CaseID=$CaseID&ProjectID=$ProjectID&...&$sessionname=$sessionid(更多参数如下)
参数:
mode,接口方法名称
CaseID,CaseID
ProjectID,项目ID
ModuleID,模块ID
CaseTitle,Case标题
CaseSteps,Case步骤
CaseStatus,Case状态
CaseType,Case类型
AssignedTo,指派人
CasePriority,Case优先级
CaseMethod,测试方法
ReplyNote,注释信息
ScriptedBy,脚本编写者
ScriptedDate,脚本编写时间
ScriptStatus,脚本状态
ScriptLocation,脚本地址
注:在编辑case时,可以省略部分参数,参数的默认值可以在Include/Api.inc.php中$_CFG['API']['FieldsDefauleValue']['Case']设定。
输出:
成功:
返回:成功信息
格式:一行字符串:
success
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。
10.updateresult接口
描述:编辑Result信息
输入:api.php?mode=updateresult&ResultID=$ResultID&...&$sessionname=$sessionid(更多参数如下)
参数:
mode,接口方法名称
ResultID,ResultID
ResultValue,Result结果(Pass,Fail)
ResultBuild,运行Build
ResultStatus,运行状态
CaseType,Case类型
AssignedTo,指派给
ReplyNote,注释
注:在编辑result时,可以省略部分参数,参数的默认值可以在Include/Api.inc.php中$_CFG['API']['FieldsDefauleValue']['Result']设定。
输出:
成功:
返回:成功信息
格式:一行字符串:
success
失败:
返回:error信息。
格式:error=errorcode(errorcode可以在api.php中修改)。