我目前正在尝试以编程方式构建testCases。
来自输入招摇的每个新资源必须具有相应的testCase。
我设法检测哪个资源没有testCase,我可以创建testCase,但是当它要创建testStep时我遇到了问题。
我目前正在执行以下过程:
namespace Imperium {
class Soldier
{
public function getNameSpace()
{
return __NAMESPACE__;
}
}
}
namespace Chaos {
class Soldier
{
public function getNameSpace()
{
return __NAMESPACE__;
}
}
}
namespace {
class Scanner
{
public function scan($Soldier)
{
if ($Soldier->getNameSpace() == "Imperium")
{
echo "yes\n";
}
else
{
echo "no\n";
}
}
}
$soldier = new Imperium\Soldier();
$scan = new Scanner();
$scan->scan($soldier); /* Here giving it a soldier instance from imperium namespace */
}
这个ALMOST有效!但是当它到达testStep创建时,我在readyAPI中弹出一个“New RestRequest”,要求我“选择现有的请求或REST方法,或者创建一个新请求”。
如何以编程方式执行此步骤?
感谢您的帮助
亚历
答案 0 :(得分:0)
我发现了如何继续。事实上,我想用新版本的swagger输入文件新更新的资源自动创建一个带有testStep的testCase。我进行如下: 我得到了资源列表:
restServiceList = testRunner.testCase.testSuite.project.getInterfaceList()
从每个资源中,我获得它包含的API列表:
restServiceList.each{
inter ->
inter.each{
// pour chaque bloc de ressources, on va recuperer la liste des API exposees
ops = it.getOperationList()
found = false
ops.find(){
// on compare le nom de l'API on nom du test - si ca matche, on sort
//log.info it.getName()
if(it.getName() == tc.getName())
{
// API trouvee, on recupere la liste des requetes
reqList = it.getRequestList()
found = true
}
}
}
}
对于每个API请求,我创建相应的testStep
reqList.each{
restRequest ->
testStepConfig = RestRequestStepFactory.createConfig( restRequest, tc.getName() );
testStepConfig.setName("Request 1") // Attention, voir ce que ca donne sur une resource multiple !
// log.info "testStepConfig = " + testStepConfig.toString()
// ajout du step dans le testCase
tc.addTestStep( testStepConfig )}
此外,我创建了与请求参数相关的自定义属性(因为我的API具有通用参数)
def requestParameters = testStepConfig.config.restRequest.parameters.entryList ...
这很有效。