Concordion:如何在#TEXT中获取参数值

时间:2016-06-26 15:15:32

标签: testing concordion

我使用Concordion来测试一些java组件。 我会写类似

的东西
  <pre concordion:execute="someFunction(#TEXT, #a)">
   { 
    id:123,
    name:<span concordion:echo="#b"/>
   }  
  </pre>   

我希望#b的值被计算并动态替换。 但是someFunction中的值#b不是一个空字符串。 同样,如果使用

name:<span concordion:execute="getBValue()"/>

如果某人做过类似的事情,请你帮忙。

感谢。

3 个答案:

答案 0 :(得分:1)

我认为Concordion不是为了这个用例而设计的。它不是模板引擎。您可以将规范的文本元素作为输入传输到自动化测试中。此外,您可以使用规范中的值作为参考,以比较被测系统的实际输出。

当你想将某个方法getBValue()的结果转移到另一个方法someFunction()时,你可能有几个选项:

  1. 如何在someFunction()中调用getBValue()?
  2. 或者你可以将getBValue()的结果传递给变量并用这个变量调用一些函数:
  3. &#13;
    &#13;
    <pre concordion:execute="someFunction(#TEXT, #a, #b)">
       { 
        id:123,
        name:placeholder-for-value-b
       }  
    </pre>
    &#13;
    &#13;
    &#13;

    然后在someFunction()内部,您可以替换占位符:

    public void someFunction(String text, String aValue, String bValue) {
      text.replace("placeholder-for-value-b", bValue);
      //continue logic of someFunction
    }
    

答案 1 :(得分:0)

您可以使用execute command初始化变量#name:

<span concordion:execute="#name=getBValue()"/>

后跟echo command

name: <span concordion:echo="name" />

或者你试过直接在echo命令中调用你的方法吗?

name: <span concordion:echo="getBValue()" />

答案 2 :(得分:0)

你的问题可能与html结构有关吗? 当您使用嵌套元素,如

<pre concordion:execute=...> <span concordion:assert-equals=...>...</span> <span concordion:set=...>...</span> </pre>

Concordion使用以下执行顺序:

  1. 所有&#34;标准&#34;诸如set,echo等命令
  2. 执行命令
  3. 断言命令,例如assert-equals
  4. 这就是Concordion handles unusual sentence structures的方式。

    如何将execute-command放在专用的span-tag中?

    <pre> <span concordion:execute=...>...</span> <span concordion:echo=...></span> </pre>