前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >httpclient如何快速往数据库里添加测试用例

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

作者头像
企鹅号小编
发布2018-02-01 10:33:07
1.2K0
发布2018-02-01 10:33:07
举报
文章被收录于专栏:数据库

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

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

// 下面是往数据库写入用例的方法

String url ="http://testapi.app.happyjuzi.com/common/menu";

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到数据库中

protectedvoidaddCaseToMySql(String url, String textView, String[] verify) {

if(verify.length %2==1) {//检查数据个数

output("错误的参数个数!");

return;

}

JSONObject jsonObject = getJsonFromTextView(urlDecoderText(textView));//转化数据为jsonobject

String apiName = getApiName(url);//获取apiName

LocalMySql.getInstance().addCaseFromDate(apiName, jsonObject, verify);//插入数据库

}

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

// 添加测试用例

publicvoidaddCaseFromDate(String apiName, JSONObject jsonObject, String[] verify) {

if(verify.length %2==1) {//检查verify个数

output("verify的参数个数错啦!");

return;

}

StringBuffer part1 =newStringBuffer();//sql语句第一部分

for(inti =1; i < jsonObject.length() +1; i++) {//获取jsonobject个数,拼接sql第一部分

String keyPart ="key"+ i;

String vaulePart ="value"+ i;

part1.append(keyPart +","+ vaulePart +",");

}

StringBuffer part2 =newStringBuffer();//sql语句第二部分

for(inti =1; i < verify.length /2+1; i++) {//获取验证字段的个数,拼接sql第二部分

String keyPart ="verify_key"+ i;

String vaulePart ="verify_value"+ i;

part2.append(keyPart +","+ vaulePart +",");// 此处末尾会出现",)"

}

StringBuffer part3 =newStringBuffer();//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 =newStringBuffer();//sql语句第四部分

for(inti =; 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 +")";//拼接sql

String sql = one.replace(",')",")").replace(",)",")");//处理中间拼接时出现多余内容

getConnection();

try{

if(!connection.isClosed()) {

Statement statement = connection.createStatement();

statement.executeUpdate(sql);

connection.close();

}

}catch(SQLException e) {

outputError(e);

}

}

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

-----------------------------END---------------------------------

软件测试行业的现状:无论公司用不用自动化和性能,面试都会要求你会,所以不努力你还能走多远?

龙腾岁末给力课程揭榜了~

1、零基础学Python

周期:21课时+

上榜理由:便宜便宜还是便宜

收费详情:仅需200元押金,报自动化班的学员免费赠送

2、Python自动化测试班

周期:84课时+

上榜理由:分层自动化内容实用,接地气,不走理论派,

收费详情:网络班4000,实体班5000,推荐好友还可以更便宜

附赠大礼包:预定Python自动化班,赠送21课时Python基础课程

3、Python测试开发班

周期:112课时+

上榜理由:4个大项目实战,公司要什么我们讲什么,折扣力度大

收费详情:原价8500/9750的课程,折后仅需6800/7800

附赠大礼包:预定Python测试开发班,赠送21课时Python基础+21课时环境搭建

本文来自企鹅号 - 龙腾测试媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 龙腾测试媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档