什么是接口自动化测试?软件测试之接口自动化测试基础
281
2022-08-27
下面是关于接口自动化测试-什么是接口自动化测试
一、接口自动化测试的实施作用:
1 .服务器端变更功能或追加新功能时,在新发布程序后,新开发功能不会导致其他相关功能出现问题。 通过持续集成,服务端发布并运行触发界面测试代码,尽早发现问题。
2、抽取部分接口测试用例,定时运行程序,在线监测常用业务操作,及时发现修复。
二、本次接口自动化的实施思路:
主要使用http客户端向http客户端接口发送post、get等请求,通过mybatis框架与mysql数据库进行操作,使用mysql数据库发送请求参数、预期引入测试框架TestNG对测试用例进行分组和逻辑控制,使用TestNG断言判断测试用例的结果,同时生成结果的统计分析并对结果进行分析
三.实例
代码结构:主要分为四层,cases主要对应测试用例的编写、config层的主项目配置、监听和接口信息,model层主要对应数据库中对应表的各个字段,相当于数据载体bean 放置几个工具类,例如,制作后续封装的sqlsession的工具类、取得http客户端对象的工具类、取得httppost对象和httpget对象的工具类,分层化的结构主要是不同的后续的最优化可以考虑导入spring框架,将各层解耦。
主要以牛股王智能诊断股和登录部分的界面为例进行演示
1、登录部分:
表设计:主要用于存储请求参数的数据。
2、要求部分:登录操作相同,登录部分可以写一种方法模拟登录,获取要求结果。 在“请求”部分中,可以设置请求标头信息等信息,以json格式返回结果并转换json格式
privatestringgetresult (logincaselogincase ) throws IOException { (
//新的post请求对象
http post post=new http post (test config.loginurl;
设置标题信息
post.setheader('content-type ',' application/x-www-form-urlencoded; charset=utf-8 ';
post.setheader('packtype ','1' );
post.setheader('s ',' _test ' );
post.setheader('version ','3.9.1' );
post.setheader('night ','1' );
以/*json格式发送请求
* JSONObject param=new JSONObject (;
param.put('username ',loginCase.getUsername ) );
param.put('password ',loginCase.getPassword ) );
param.put(logintype ),loginCase.getLoginTyte );
param.put(deviceid ),loginCase.getDeviceid );
param.put('company ',loginCase.getCompany ) );
//设置编码格式并发送开机自检请求
stringentityentity=new string entity (param.tostring ),' utf-8 ' );
post.setentity(entity; */
arraylistnamevaluepairpairs=newarraylistnamevaluepair (;
namevaluepairpair1=newbasicnamevaluepair (' username ',loginCase.getUsername );
namevaluepairpair2=newbasicnamevaluepair (' password ',loginCase.getPassword );
namevaluepairpair3=newbasicnamevaluepair (' device id ',loginCase.getD
eviceid());
NameValuePair pair4 = new BasicNameValuePair("loginType",loginCase.getLoginTyte());
NameValuePair pair5 = new BasicNameValuePair("company",loginCase.getCompany());
pairs.add(pair1);
pairs.add(pair2);
pairs.add(pair3);
pairs.add(pair4);
pairs.add(pair5);
post.setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8));
String result;
//获取请求返回结果
HttpResponse response = TestConfig.defaultHttpClient.execute(post);
//请求返回结果转换为字符串
result = EntityUtils.toString(response.getEntity(),"utf-8");
System.out.println("测试返回结果为"+result);
TestConfig.store = TestConfig.defaultHttpClient.getCookieStore();
return result;
}
3、从数据库中读取参数,传给上面的方法,并使用TestNG的注解控制测试用例。读取数据主要是
使用mybatis框架
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = factory.openSession(true);
创建sqlsession,从数据库中读取数据,sqlsession可以对数据库增删读写操作。当单一接口,没有数据依赖的情况下,直接从数据库中取数据,拼接为请求参数,对接口进行请求,而如果接口数据有依赖,则对对应的接口的表进行插入或者更改操作,比如,在用户登录后,会登录用户的usertoken,这usertoken恰好是其他接口使用的,所以会取出该
usertoken,并将该usertoekn存储到对应的接口的对应的参数表中。其他接口再使用时也直接在表中取出就可以直接使用,但是注意相关联接口执行顺序,TestNG进行控制。
4、执行测试用例
执行测试用例也是通过TestNG来控制的,对测试用例的先后执行顺序,优先级、分组、依赖等设置
5、测试报告分析
执行结束后对测试结果统计,该结果是一个html文件,可以将html拷贝到任何一个地方都可以查看,比如搭建一个web服务器将html放到这个服务器上都可以查看。
对于执行结果也可以写一个封装邮件的工具类,将如果有问题进行邮件通知等方式发送给开发人员。
同时报告中会包含接口信息,参数信息和错误信息,便于开发查看问题
四、后续优化
1、代码优化;
2、设计思路优化,现有结构如果后续做测试平台会有一定难度,而且代码量也很大;
3、持续集成搭建
4、丰富接口类型
五、优缺点
主要是从设计思路上分析优缺点
优点:1、实现接口测试数据和脚本的分离;2、数据便于维护,思路比较清晰,编写比较容易
缺点:1、缺点新增加接口时,还需要新建表、创建数据承载bean,开发量较大 ;2、耦合度较高 ;3、如果考虑给手工测试人员提供接口测试平台,不容易实施
综上考虑,暂时先打算放弃掉该自动化测试框架。
1. 什么是接口测试
顾名思义,接口测试是对系统或组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为 HTTP,WebService,Dubbo,Thrift,Socket 等类型,测试类型又主要分为功能测试,性能测试,稳定性测试,安全性测试等。
分层测试策略
分层测试策略中各层工作有明确的测试重心,测试工作通过逐层开展螺旋上升。这样一方面促使开发测试一体化,直接提高了测试效率;另一方面也可以尽早发现程序缺陷,降低缺陷修复成本。
在分层测试的 “金字塔” 模型中,接口测试属于第二层服务集成测试范畴,介于单元测试和界面测试之间,是一种灰盒测试方法,主要测试内部接口功能的完成性。相较于UI层(主要是 WEB 或 APP)自动化测试,接口自动化测试它具有自动化成本低和测试效率高的特点,收益更大,且容易实现,维护成本低,有着更高的投入产出比,是每个公司开展自动化测试的首选。
接口测试的工作原理
接口测试的工作原理是接口测试工具模拟客户端向服务器发送报文请求,服务器接受请求并做出响应。然后向客户端返回应答信息,接口测试工具对应答信息进行解析的一个过程。
常用的接口测试工具
1、Apache JMeter:是一款基于Java的开源测试工具,主要应用于WEB应用程序的负载测试,同时也支持单元测试和接口测试;
2、Postman:是一款功能强大的网页测试工具,支持WEB API和HTTP请求,能够发送任何类型的HTTP请求(GET、HEAD、POST、PUT等)。Postwomen与其近似的一款免费开源、轻量级测试工具;
3、SoapUI,是一款用于SOAP和REST的开源API测试自动化框架,可以集成到Eclipse等开发工具中,支持用户二次开发;
4、Robot Framework,是一款基于Python3的开源自动化测试框架,具有良好的可扩展性,支持关键字驱动,运行用户二次开发。
基于这些接口测试工具,测试人员可以根据自身业务需要开发适合自己的接口自动化测试工具。有了接口自动化测试工具,我们就可以开展自动化测试工作。
2. 接口自动化测试的基本流程
基本的接口功能自动化测试流程如下:需求分析 -> 用例设计 -> 脚本开发 -> 测试执行 -> 结果分析
1、在测试工具中登记待测交易的接口报文格式;
2、编写测试案例,向案例中添加交易接口并进行配置关联;
3、准备测试数据并对测试数据进行参数化;
4、测试工具自动执行自动化测试案例;
5、测试工具比对预期结果和返回结果,验证案例是否执行成功。
以上就是小编为大家整理的接口自动化测试-什么是接口自动化测试
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~