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

本人在使用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课时环境搭建

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LEo的网络日志

coding感想(一)

37811
来自专栏Jimoer

经历的面试题,先做下部分总结。

1693
来自专栏从流域到海域

《笨办法学Python》 第37课手记

《笨办法学Python》 第37课手记 本节课是复习课。关键字是指系统预先定义好的含有特定含义的字符串或者函数,注意你在自定义函数时不能与关键字重名。可是该课中...

19010
来自专栏zhisheng

面向对象设计原则之依赖倒转原则

前两天的算法排序文章,《Java常用排序算法/程序员必须掌握的8大排序算法(上)》、《Java常用排序算法/程序员必须掌握的8大排序算法(下)》,没看的可以点上...

3738
来自专栏NetCore

[原创]Fluent NHibernate之旅(三)-- 继承

经过了“开篇”和“简单映射”两篇文章,相信大家对Fluent NHibernate 有了一定的了解了,FluentNHibernate实际就是对 NHibern...

2028
来自专栏芋道源码1024

我的编码习惯 —— API 接口定义

工作中,少不了要定义各种接口,系统集成要定义接口,前后台掉调用也要定义接口。接口定义一定程度上能反应程序员的编程功底。列举一下工作中我发现大家容易出现的问题:

1424
来自专栏函数式编程语言及工具

Scalaz(22)- 泛函编程思维: Coerce Monadic Thinking

马上进入新的一年2016了,来点轻松点的内容吧。前面写过一篇关于用Reader实现依赖注入管理的博文(Scalaz(16)- Monad:依赖注入-Depe...

20210
来自专栏恰童鞋骚年

设计模式的征途—3.工厂方法(Factory Method)模式

上一篇的简单工厂模式虽然简单,但是存在一个很严重的问题:当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代...

762
来自专栏工科狗和生物喵

【计算机本科补全计划】指令:计算机的语言(MIPS) --计算机组成原理

正文之前 今天的主题就是,重新学一次汇编语言,不过总感觉跟单片机的汇编语言没啥差别,不过就是地址变宽,然后一些限制多了不少,因为计算机要进行大量的运算,所以更加...

8327
来自专栏一“技”之长

iOS有关内存管理的二三事 原

随着移动设备的内存越来越大,程序员也已经度过了为了那一两M的内存在系统的抽丝剥茧的年代,对于JAVA的开发者,对内存更是伸手即取,并且从不关心什么时候还回去。但...

732

扫码关注云+社区

领取腾讯云代金券