码迷,mamicode.com
首页 > 其他好文 > 详细

从属性文件中读取配置

时间:2019-03-17 13:54:23      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:height   verify   就是   java   top   程序   扩展名   path   url   

本章是关于如何在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

技术图片

 

 

有关Cucumber Framework的更多更新  ,请  订阅  我们的时事通讯。

如有任何问题或疑问,请在ForumsQA上  提问

从属性文件中读取配置

标签:height   verify   就是   java   top   程序   扩展名   path   url   

原文地址:https://www.cnblogs.com/wldan/p/10546612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!