本章是关于如何在Selenium Cucumber Framework 或任何框架中从属性文件中读取配置的。在项目中存储硬编码值是危险的,也违反了编码原则。到目前为止,我们在代码中使用了大量的硬编码值。在属性文件的帮助下,我们将逐一消除这些硬编码值。
什么是Java中的Property文件
.properties 文件主要用于Java程序,以维护项目配置数据,数据库配置或项目设置等。属性文件中的每个参数都以键值对格式存储为一对字符串,其中每个键都在一行上。您可以使用 Properties类型的对象轻松地从某个文件中读取属性。这是Java本身提供的实用程序。
java.util.Properties;
Java中Property文件的优点
如果从属性文件更改了任何信息,则无需重新编译java类。换句话说,使用属性文件的优点是我们可以配置在一段时间内易于更改的内容,而无需更改代码中的任何内容。
对于Eg。我们将应用程序Url保存在属性文件中,因此如果您想在其他测试环境中运行测试,只需更改属性文件中的Url即可。您不需要再次构建整个项目。
如何从属性文件中读取配置
第1步:创建属性文件
1.创建一个新的文件夹并将它命名为CONFIGS,通过右键单击在根项目,并选择新建文件夹>>。我们将把所有配置文件保存在同一个文件夹中。
2. 右键单击上面创建的文件夹创建一个新文件 ,然后选择新建>>文件。
3)。我们唯一需要做的就是提供文件名并将扩展名作为.properties。在我们的例子中,我们将其命名为Configuation.properties。
第2步:在属性文件中写入硬编码值
如果我们看一下步骤 文件的第一个方法,我们会发现我们一直在使用两个硬编码值:
- Driver Path = System.setProperty(“webdriver.chrome.driver”,“ C:\\ ToolsQA \\ Libs \\ Drivers \\ chromedriver.exe ”);
- 隐式等待时间 = driver.manage()。timeouts()。implicitlyWait(10,TimeUnit.SECONDS);
和HomePage.java类中的URL
- URL = driver.get(“ http://www.shop.demoqa.com ”);
1)所以,让我们开始在Key Value Pair的Property文件中写下这些值。
注意:以上是我们将用于Cucumber测试的属性文件。请记住,始终忽略属性名称和属性值之间的空格。
第3步:创建配置文件读取器
1.创建一个新包,并将其命名为数据提供程序,通过右键点击上的src / test / java下,选择新建>>软件包。我们将把所有数据读取器文件保存在此包中。
2.创建一个新的类文件,并将它命名为ConfigFileReader, 通过右键单击在上面创建的包并选择新建>>类。
ConfigFileReader.java
说明
如何加载属性文件
- propertyFilePath:这只是一个String变量,它保存配置文件路径的信息。
- new FileReader(propertyFilePath):给定要读取的文件的名称,创建一个新的 FileReader。
- new BufferedReader(new FileReader(propertyFilePath)):从字符输入流中读取文本,缓冲字符,以便有效读取字符,数组和行。
- new Properties() :Properties类表示一组持久的属性。可以将属性保存到流中或从流中加载。属性列表中的每个键及其对应的值都是一个字符串。
- properties.load(reader) :以简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
ConfigFileReader方法
- properties.getProperty(“driverPath”):属性对象给我们一个。getProperty 方法,它将属性的Key作为参数,并从.properties文件返回匹配键的Value。
- 如果属性文件没有指定的键,则返回null。这就是为什么我们已经进行了空检查,并且在null的情况下,我们希望抛出异常以使用堆栈跟踪信息停止测试。
第4步:在Steps文件中使用ConfigFileReader对象
要在测试中使用ConfigFileReader对象,我们需要先创建一个类的对象。
ConfigFileReader configFileReader = new ConfigFileReader();
然后我们可以替换下面的语句
System 。setProperty (“webdriver.chrome.driver” ,“C:\\ ToolsQA \\ Libs \\ Drivers \\ chromedriver.exe” );
使用
System.setProperty(“webdriver.chrome.driver”,configFileReader.getDriverPath());
完整步骤文件现在将如下所示:
Steps.java
我们的主页对象类文件也将进行更改。
HomePage.java
注意:虽然在每个类中创建属性文件的对象是不好的做法。我们在Steps文件中创建了相同的对象,现在我们再次在HomePage类中创建。但是现在不用担心,我在下一章给你一些特别的东西。
运行黄瓜测试
以JUnit身份运行
现在我们都准备好进行Cucumber测试了。 右键点击 上 的TestRunner 类,然后单击 运行方式>> JUnit测试。 Cucumber 将以与在Selenium WebDriver中运行相同的方式运行脚本, 结果将显示 在JUnit 选项卡的左侧 项目浏览器窗口中 。
Project Explorer