httpclient + TestNG 接口自动测试 第五章

1.实现对java配置文件properties的读取、写入与更新操作

package com.config;

/**
* 实现对Java配置文件Properties的读取、写入与更新操作
*/
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Properties;   

/**
* @author
* @version
*/
public class Property {
    //属性文件的路径
    static String profilepath = System.getProperty("user.dir") + "/WEB-INF/configuration.properties"; 

    /**
    * 采用静态方法
    */
    private static Properties props = new Properties();
    static {
        try {
          InputStream in = new FileInputStream(profilepath);
          BufferedReader bf = new BufferedReader(new InputStreamReader(in, "UTF-8"));
          props.load(bf);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            System.exit(-1);
        } catch (IOException e) {
            System.exit(-1);
        }
    }   

    /**
    * 读取属性文件中相应键的值
    * @param key
    *            主键
    * @return String
    */
    public static String getKeyValue(String key) {
        return props.getProperty(key);
    }   

    /**
    * 根据主键key读取主键的值value
    * @param filePath 属性文件路径
    * @param key 键名
    */
    public static String readValue(String filePath, String key) {
        Properties props = new Properties();
        try {
            InputStream in = new BufferedInputStream(new FileInputStream(
                    filePath));
            props.load(in);
            String value = props.getProperty(key);
            System.out.println(key +"键的值是:"+ value);
            return value;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }   

    /**
    * 更新(或插入)一对properties信息(主键及其键值)
    * 如果该主键已经存在,更新该主键的值;
    * 如果该主键不存在,则插件一对键值。
    * @param keyname 键名
    * @param keyvalue 键值
    */
    public static void writeProperties(String keyname,String keyvalue) {
        try {
            // 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。
            // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
            OutputStream fos = new FileOutputStream(profilepath);
            props.setProperty(keyname, keyvalue);
            // 以适合使用 load 方法加载到 Properties 表中的格式,
            // 将此 Properties 表中的属性列表(键和元素对)写入输出流
            props.store(fos, "Update ‘" + keyname + "‘ value");
        } catch (IOException e) {
            System.err.println("属性文件更新错误");
        }
    }   

    /**
    * 更新properties文件的键值对
    * 如果该主键已经存在,更新该主键的值;
    * 如果该主键不存在,则插件一对键值。
    * @param keyname 键名
    * @param keyvalue 键值
    */
    public void updateProperties(String keyname,String keyvalue) {
        try {
            props.load(new FileInputStream(profilepath));
            // 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。
            // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
            OutputStream fos = new FileOutputStream(profilepath);
            props.setProperty(keyname, keyvalue);
            // 以适合使用 load 方法加载到 Properties 表中的格式,
            // 将此 Properties 表中的属性列表(键和元素对)写入输出流
            props.store(fos, "Update ‘" + keyname + "‘ value");
        } catch (IOException e) {
            System.err.println("属性文件更新错误");
        }
    }
    //测试代码
    public static void main(String[] args) {
      System.out.println(readValue(profilepath, "test"));
      System.out.println(getKeyValue("test"));
      System.out.println(getKeyValue("zhongwen"));
      writeProperties("MAIL_SERVER_INCOMING", "[email protected]");
      System.out.println("操作完成");
    }
}   
时间: 2024-11-11 23:34:53

httpclient + TestNG 接口自动测试 第五章的相关文章

httpclient + TestNG 接口自动测试 第三章

此后就是数据准备与逻辑实现,就不在赘述了 此次自动化脚本并未太多用到TestNG,仅仅用于他调试起来方便: 本章记录一些用到的辅助方法: 1.将返回值打印出来的get请求,用于测试或查看接口返回内容 public static void get(HashMap<String, String> params, String HOST, String PATH) { CloseableHttpClient httpclient = HttpClients.createDefault(); try

httpclient + TestNG 接口自动测试 第六章

1.httpclient处理post提交xml格式数据请求 public static void post(String HOST, String PATH, String reqXml) { // 创建httpClient实例 CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httppost HttpPost httppost = new HttpPost(getUrl(HOST, PATH)); // 设置

httpclient + TestNG 接口自动测试 第四章

1.客户端向服务器传递参数中有的需要传递Json格式数据,现提供个HashMap转json格式数据方法 public static String hashjson(HashMap<String, String> map) { String string = "[{"; for (Iterator<Entry<String, String>> it = map.entrySet().iterator(); it.hasNext();) { Entry&

httpclient + TestNG 接口自动测试 第一章

自动化接口实现选择排期--->选择座位--->创建订单--->取消订单/出票流程: 影讯接口:城市列表.影院列表.影厅列表.座位列表.已售座位列表.排期列表: 订单接口:创建订单.查询订单.出票.取消订单: 逻辑上分四层实现: StartTest.java 开始执行测试 OrderScheme.java 订单流程  CityScheme.java 影讯流程 OrderInterface.java 构造订单接口参数 CityInterface.java 构造影讯接口参数 GetPost.j

httpclient + TestNG 接口自动测试 第二章

请求地址由参数加参数签名形式生成,例如: http://ip/server?method=getPlans&planDate=2014-08-25&cinemaId=101&uid=remote&enc=d0fe8420c641dd87d4165c09fe1d0c70&time_stamp=1408960607250 1.构建url 1)首先构建参数对 public static HashMap<String, String> cinemas() { H

接口自动化:HttpClient + TestNG + Java(二) - 第一个接口测试:get请求

在上一篇中,我们搭建好了HttpClient + TestNG + Java的自动化接口测试环境,这一篇我们就赶紧开始编写我们的第一个接口测试用例. 本篇会对问题解决的思路进行更详尽的阐述. 2.1 确定被测接口 首先一个现实的问题,我们要有一个待测接口来验证我们自动化方案的可行性. 我们可以选择在自己的本地去部署一套待测接口,当然也可以选择公网上的接口去进行测试,这里我们选择后者. 我选定的是apishop这个站点:https://www.apishop.net/ 这个站点提供非常多,种类齐全

第五章 搭建 S3C6.410 开发板的 测试环境

一.前言 开发板从技术上说与我们经常用的手机类似, 也包含显示屏. 键盘. Wi-Fi. 蓝牙等模块(可 能有的是选配〉.但与手机不同的是在开发板上安装嵌入式系统要比手机容易得多.而且一般开发 扳都有很多扩展的端口,可以很容易开发定制的硬件, 并与开发板链接.因此,开发板相对于孚机 来说,更适合对程序进行测试,尤其适合对底层的 Linux 程序(如 Linux 驱动〉进行测试. 目前市面上的开发板型号和种类很多,但目前最流行的是基于三星S3C6410 ARM11架构的开发板.国内很多厂商在S3C

JAVA: httpclient 详解——第五章;

相对于httpurlconnection ,httpclient更加丰富,也更加强大,其中apache有两个项目都是httpclient,一个是commonts包下的,这个是通用的,更专业的是org.apache.http.包下的,所以我一般用后者: httpclient可以处理长连接,保存会话,重连接,以及请求过滤器,连接重用等等... 下面是测试代码(全部总结来自官方文档,以及翻译) 须要下载核心包:httpclient-4.3.4.jar ,也可在官网下载:http://hc.apache

MiS603开发板 第十五章 MCB DDR3内存测试

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第十五章 MCB DDR3内存测试 15.1 DDR3存储器模块及其测试 图像算法硬件最关键的一部分就是内存,内存保