51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3131|回复: 9
打印 上一主题 下一主题

关于读取配置文件

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-9-23 08:23:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了一个读取配置文件的静态方法(类也行),但是每次都要去调用方法,参数是key,能不能直接的就将配置文件里的value读取出来。比如,getPropertiesValue.SELENIUM_PORT。我不想换用
getPropertiesValue.readvalue(key).

谢谢了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-9-27 19:51:06 | 只看该作者
那你直接写常量不就行了么?
public static final String SELENIUM_PORT = 4444;
缺点是不能在代码外修改参数,象默认端口号这样的配置不常修改,写在常量也无妨
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-9-28 03:32:57 | 只看该作者
谢谢回复

问题是我将几百个元素的地址储存在properties文件里,那怎么读起来方便点?谢谢了

回复 2# goal1860
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-9-28 09:41:14 | 只看该作者
方法一:.ini文件 就是你这种功能。可以看下那个是怎么实现的。

方法二: 假设你的文件里是 key=value这样的方式存在 properties
可以在init时把这个文件读到到个map里面。以后用时就map.get("key");

不知道能不能解决你的问题呢?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2010-9-29 02:36:29 | 只看该作者
谢谢小米,我是:
               String value;
                Properties properties = new Properties();
                properties.load(new FileInputStream(new File("xxx.properties")));

                try {
                        value = properties.getProperty(key);
                        return value;
                } catch (Exception e) {
                        e.printStackTrace();
                        System.err.println("ConfigInfoError2" + e.toString());
                        return null;
                }
b]回复 4# 小米啊


但是每次调用的时候都要properties.getvalue("key"),特别的麻烦,有没有还有简化点的
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-9-29 16:08:37 | 只看该作者
我是觉得你这方法挺好了哈。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-9-30 00:53:15 | 只看该作者
回复 6# 小米啊


那现在就这样吧,以后再完善了。

小米啊,你能不能看下我另外一个帖子:如何将测试的具体每个点反映在测试结果里(junit report)-http://bbs.51testing.com/viewthread.php?tid=299086

我觉得junit提供的assert太少了,不过我用if来判断的话,得到是不想要的结果,如何将它在junit report里反映是fail的呢?

谢谢啊
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-10-11 19:20:30 | 只看该作者
回复 3# irabbit


    有几个方法:
1。 把properties 文件分成若干个,执行前只导入公共和相关的数据
2。用xml resource bundle, test case的setup 只读出相关数据。
3。在执行所有测试之前将所有数据读到内存里来,有点象玩游戏之前loading的过程:)适用于频繁读取数据严重影响执行速度的情况。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-10-27 05:45:40 | 只看该作者
回复 8# goal1860


   谢谢楼上的,但是我有问题是

一般在类加载的时候读取properties文件吗?

我不明白是写静态模块去读取properties文件,然后赋值给变量好,还是用constructor好,没有做过project,想请教下。

万分谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-10-28 16:29:31 | 只看该作者
回复 9# irabbit

你问了个很好的问题。这个问题其实很难回答,因为这是由你自己测试项目的设计本身决定的。如果读取的都是常量并且只有一套数据可以用静态类。如果读取的是变量(值会在测试过程中修改)可以考虑可实例化类。当然这是一般原则。个人比较反感静态类,喜欢用单例模式。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 17:48 , Processed in 0.070805 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表