stepansib / alm-client
PHP的HP ALM/QC REST客户端
v0.5.4
2019-05-07 14:03 UTC
Requires
- php: >=7.1
- ext-curl: *
- ext-simplexml: *
- lib-curl: *
- symfony/options-resolver: ^3
Requires (Dev)
- symfony/var-dumper: ^4.2
README
通过REST API轻松与HP ALM交互。
安装
只需运行
composer require stepansib/alm-client
用法
设置ALM/QC连接
第一步是设置正确的连接凭据并实例化新的AlmClient对象
$almClient = new AlmClient(array( 'host' => 'http://alm-qc-host:8080', 'domain' => 'DOMAIN_NAME', 'project' => 'PROJECT_NAME', 'username' => 'johndoe', 'password' => 'password123', ));
身份验证
您需要身份验证才能开始与ALM一起工作
$almClient = new AlmClient($connectionParams); $almClient->getAuthenticator()->login(); // lets check if user authenticated successfully echo $almClient->getAuthenticator()->isAuthenticated() ? "Authenticated" : "Not authenticated";
当您完成与ALM/QC的工作后,请使用注销方法
$almClient->getAuthenticator()->logout();
根据标准获取实体
所有实体都以AlmEntity对象的形式返回。您必须指定ALM/QC实体类型(缺陷、测试、运行等)以及用于过滤实体的标准数组
// you can get the array of entities $defects = $almClient->getManager()->getBy(AlmEntityManager::ENTITY_TYPE_DEFECT, array( 'id' => '>=100', 'status' => 'Open', 'owner' => 'johndoe', )); // or get only first matching entity $entity = $almClient->getManager()->getOneBy(AlmEntityManager::ENTITY_TYPE_DEFECT, array( 'id' => '101' ));
您还可以通过指定水化类型以ALM/QC XML响应的形式获取实体
$defects = $almClient->getManager()->getBy(AlmEntityManager::ENTITY_TYPE_DEFECT, array( 'owner' => 'johndoe', ), AlmEntityManager::HYDRATION_NONE); // Lets output the XML returned by ALM/QC echo $defects;
实体
实体字段值可以通过两种方式访问
// through getter method $paramValue = $entity->getParameter('detected-by'); //or directly via magic getter method $paramValue = $entity->detected-by;
要创建新参数或更改现有参数,请使用setter方法
$entity->setParameter('description', 'my defect description');
要使用数组获取所有参数,请使用
$entityParameters = $entity->getParameters();
要获取和更改实体类型,请使用
$entityType = $entity->getType(); $entity->setType(AlmEntityManager::ENTITY_TYPE_RESOURCE); //This method also called in AlmEntity::__construct
创建新实体
要创建新实体,您必须实例化一个AlmEntity对象
$entity = new AlmEntity(AlmEntityManager::ENTITY_TYPE_DEFECT);
保存实体
要保存(持久化或更新)实体,请使用AlmEntityManager::save()方法
$almClient->getManager()->save($entity);
这将适用于新实体和现有实体。此方法返回保存的AlmEntity对象
完整工作流程示例
$entity = new AlmEntity(AlmEntityManager::ENTITY_TYPE_DEFECT); // lets fill some entity fields $entity->setParameter('name', 'REST API test defect ' . date('d/m/Y H:i:s')) ->setParameter('detected-by', 'johndoe') ->setParameter('owner', 'johndoe') ->setParameter('creation-time', date('Y-m-d')) ->setParameter('description', 'REST API test defect description'); // and finally save the new defect $entity = $almClient->getManager()->save($entity); echo 'New entity id: ' . $entity->id;
获取实体可用字段列表(以及可编辑字段列表)
待完成:完成此章节
获取可编辑字段列表
待完成:完成此章节
获取实体锁定状态
待完成:完成此章节