多个场景概述和两个不同功能文件中的示例。如何重用从一个功能文件到另一个功能文件的Java步骤?

时间:2018-04-14 09:32:45

标签: java cucumber cucumber-jvm rest-assured

两个不同功能文件中的多个场景大纲和示例。如何重用从一个功能文件到另一个功能文件的Java步骤? 功能 - > ANPost.feature **

Scenario outline : Verify csv file accept
When User perform the post request with localhost <port> <endpoint> <filename>
Then Response contains 201 and response message “Created”
***Example:***
|port|endpoint|filename|
|8080|api/v1/admin|AN.csv|

**

功能 - &gt; BNPost.feature

***Scenario outline :*** Verify csv file accept
When User perform the post request with localhost <port> <endpoint> <filename>
Then Response contains 201 and response message “Created”
***Example:***
|port|endpoint|filename|
|8080|api/v1/admin|AN.csv|
  

ANPost.java (ANPost.feature的实施代码)    BNPost.java (BNPost.feature的实现代码)1,ANPost和BNPost是功能文件夹中的separefiles。虽然实施相同   在2个不同的java文件中的步骤我得到了“重复实现   错误”

任何人都可以帮助我。

2 个答案:

答案 0 :(得分:0)

不需要在两个不同的类中定义相同的步骤定义。删除其中一个类,框架将通过正则表达式匹配自动选取匹配的步骤定义方法。对于每个场景,加载来自glue变量的所有步骤定义类,以便任何单个实现都可以工作。

答案 1 :(得分:0)

使用qaf网络服务支持,您可以写如下:

Scenario Outline: Search Keyword using data from file
   When user requests 'myservice.postfile' with data '${args[0]}'
   Then response should have status code '<status code>'
   And response should have status '<status name>'

Examples:
 | port| endpoint | filename | status code| status name |
 | 8080 | api/v1/admin | resources/testdata/AN.csv | 201 | Created |
 | 8080 | api/v1/admin | resources/testdata/BN.csv | 400 | BAD_REQUEST |

其中myservice.postfile是请求调用,您可以在xml中定义请求调用,如:

<requests>
   <myservice>
      <postfile>
         <baseurl>http://myhost:${port}</baseurl>
         <endPoint>http://myhost:${endpoint}</endPoint>
         <method>POST</method>
         <form-parameters>{
            'data':'file:${filename}'
         }
        </form-parameters>
      </postfile>
   </myservice>
<requests>

注意:这只是示例,可以通过最有效的方式使用qaf功能来增强它。