httpclient如何快速往数据库里添加测试用例

来源:互联网 发布:李宝英李钟硕 知乎 编辑:程序博客网 时间:2024/06/03 17:35

本人在使用httpclient做接口测试的过程中,使用数据库管理用例,其中存的key-value的形式,由于接口的参数可能比较多,所以一个个用例写起来会比较麻烦,所以就想了一个比较简单的方法,通过uri和textview直接向数据库中插入用例。封装完之后感觉轻松了许多,其中涉及到了遍历jsonobject和string数组还有不固定参数个数的方法,还有字符串的拼接,也算是对自己的一种锻炼吧。分享代码,供大家参考。

下面是封装好之后添加用例方法使用:

// 下面是往数据库写入用例的方法String url = "http://testapi.app.happyjuzi.com/common/menu";String textView = "ver=4.1&pf=ios&uid=19722&accesstoken=6f680e3318a102fc72332166dc30d010";String verify_key1 = "msg";String verify_value1 = "操作成功";String verify_key2 = "code";String verify_value2 = "1";String[] verify = { verify_key1, verify_value1, verify_key2, verify_value2 };addCaseToMySql(url, textView, verify);

添加用例的方法:

// 添加一个case到数据库中protected void addCaseToMySql(String url, String textView, String[] verify) {if (verify.length % 2 == 1) {//检查数据个数output("错误的参数个数!");return;}JSONObject jsonObject = getJsonFromTextView(urlDecoderText(textView));//转化数据为jsonobjectString apiName = getApiName(url);//获取apiNameLocalMySql.getInstance().addCaseFromDate(apiName, jsonObject, verify);//插入数据库}


网数据库里面插入数据的方法:

// 添加测试用例public void addCaseFromDate(String apiName, JSONObject jsonObject, String[] verify) {if (verify.length % 2 == 1) {//检查verify个数output("verify的参数个数错啦!");return;}StringBuffer part1 = new StringBuffer();//sql语句第一部分for (int i = 1; i < jsonObject.length() + 1; i++) {//获取jsonobject个数,拼接sql第一部分String keyPart = "key" + i;String vaulePart = "value" + i;part1.append(keyPart + "," + vaulePart + ",");}StringBuffer part2 = new StringBuffer();//sql语句第二部分for (int i = 1; i < verify.length / 2 + 1; i++) {//获取验证字段的个数,拼接sql第二部分String keyPart = "verify_key" + i;String vaulePart = "verify_value" + i;part2.append(keyPart + "," + vaulePart + ",");// 此处末尾会出现",)"}StringBuffer part3 = new StringBuffer();//sql语句第三部分Iterator<?> keys1 = jsonObject.keys();//由于不清楚jsonobject的key类型,所以用迭代器+通配符来处理这一部分while (keys1.hasNext()) {String keyPart = keys1.next().toString();String valuePart = getJsonValue(jsonObject, keyPart);part3.append(keyPart + "','" + valuePart + "','");}StringBuffer part4 = new StringBuffer();//sql语句第四部分for (int i = 0; i < verify.length - 1; i += 2) {//获取验证字段的名称和期望值String key1 = verify[i];String value1 = verify[i + 1];part4.append(key1 + "','" + value1 + "','");// 此处末尾会出现"',')"}String one = "insert into api_case (api_name,status," + part1 + part2 + ") value ('" + apiName + "',1,'" + part3+ part4 + ")";//拼接sqlString sql = one.replace(",')", ")").replace(",)", ")");//处理中间拼接时出现多余内容getConnection();try {if (!connection.isClosed()) {Statement statement = connection.createStatement();statement.executeUpdate(sql);connection.close();}} catch (SQLException e) {outputError(e);}}

数据库方法重载了几次,主要是兼容一下其他格式的数据,大同小异, 这里就不贴了。

宣传一下QQ群,缘起于UiAutomator,不至于UiAutomator。



阅读全文
0 0