51Testing软件测试论坛

标题: 关于读取配置文件 [打印本页]

作者: irabbit    时间: 2010-9-23 08:23
标题: 关于读取配置文件
我写了一个读取配置文件的静态方法(类也行),但是每次都要去调用方法,参数是key,能不能直接的就将配置文件里的value读取出来。比如,getPropertiesValue.SELENIUM_PORT。我不想换用
getPropertiesValue.readvalue(key).

谢谢了
作者: goal1860    时间: 2010-9-27 19:51
那你直接写常量不就行了么?
public static final String SELENIUM_PORT = 4444;
缺点是不能在代码外修改参数,象默认端口号这样的配置不常修改,写在常量也无妨
作者: irabbit    时间: 2010-9-28 03:32
谢谢回复

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

回复 2# goal1860
作者: 小米啊    时间: 2010-9-28 09:41
方法一:.ini文件 就是你这种功能。可以看下那个是怎么实现的。

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

不知道能不能解决你的问题呢?
作者: irabbit    时间: 2010-9-29 02:36
谢谢小米,我是:
               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"),特别的麻烦,有没有还有简化点的
作者: 小米啊    时间: 2010-9-29 16:08
我是觉得你这方法挺好了哈。
作者: irabbit    时间: 2010-9-30 00:53
回复 6# 小米啊


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

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

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

谢谢啊
作者: goal1860    时间: 2010-10-11 19:20
回复 3# irabbit


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


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

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

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

万分谢谢
作者: goal1860    时间: 2010-10-28 16:29
回复 9# irabbit

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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2