如何从属性文件中读取数据而不是Cucumber BDD Framework中的特征文件?

时间:2015-09-21 10:33:23

标签: cucumber-java

我有一个场景,我想要与多个用户一起登录,黄瓜提供Scenario Outline with Examples来执行此操作,但这需要在功能文件中输入用户详细信息。有没有办法将用户详细信息保存在属性文件中,并在步骤定义类中从那里调用它?

如果有,有人可以通过gmail登录方案向我提供示例代码吗?我正在使用Junit和我的黄瓜框架,对Junit的任何建议都将受到高度赞赏。

由于 Fola

3 个答案:

答案 0 :(得分:0)

我一直在寻找同样的东西,我发现了很多荒谬的“答案”。过于复杂,当它实际上超级容易。

我的目标是从.txt文件中读取 这是我在ruby中的解决方案。

#inject environment properties
Given /^I enter the environment url into a field$/ do 
File.open("/PATH/TO/YOUR/env.txt") do |envFile|
    envFile.each_line do |environment|
        puts environment
        keyboard_enter_text environment
        end
    end
end

现在,您可以从Jenkins创建一个写入属性文件的参数化构建。中提琴你的测试是动态的,享受!

答案 1 :(得分:0)

Below is the way you can call the users from property file, still you need to pass the key in your feature file, but you will be able to get the users from property file.

file.Properties
$password =  Test@1
$TestUser_1= TestUser1

 Scenario Outline: Verify that Retail
And "User" performs login in SignIn page with "<Test_User>" & "Password"
      | Fields         | Input_Value |
      | input_email    | <User_Type> |
      | input_password | <password>  |
      | btn_Sign       |             |
      | img_Tick       |             |

    Examples: 
   | password  | User_Type           |
   | $password | $TestUser_1 |   //User these key in a same way in you property file

Create your step def in a way below
to read DataTable from Ghekin
elements = locatorType.raw();
String userName = elements.get(1).get(1);  //here you will get $TestUser_1
String password = elements.get(2).get(1);   // Here you will get $password
if (userName.contains("$")) 
            {

    userName = webPropHelper.getTestDataProperty(elements.get(1).get(1));
// here you will get the userName defined in you property file against the key TestUser_1
            }
            if (password.contains("$")) {

                password = webPropHelper.getTestDataProperty(elements.get(2).get(1));
// here you will get the Password defined in you property file against the key $password
            }
    WebElement emailinputbox = getBDDElement(pageName, userName);
    WebElement pwdbox = getBDDElement(pageName, password);
            

答案 2 :(得分:0)

是的。

在步骤定义中,您可以随心所欲。在您的情况下,只需使用一些常规 Java 代码来读取属性文件。

但是请注意,这不是 BDD 方面的“最佳实践”,因为无法访问属性文件的读者无法再阅读您的场景。