接口测试总结

网络上接口测试资料很多,但是都是很散乱的,于是整理下资料,就有了这个blog

什么是接口测试

接口测试是测试系统组件间接口的一种测试。

接口测试可以分为哪几种

  1、系统与系统之间的调用,比如银行会提供接口供电子商务网站调用,或者说,支付宝会提供接口给淘宝调用

  2、上层服务对下层服务的调用,比如service层会调用DAO层的接口,而应用层又会调用服务层提供的接口,一般会通过

3、服务之间的调用,比如注册用户时,会先调用用户查询的服务,查看该用户是否已经注册。

测试思路

对于接口测试,首先测试人员要懂代码,你只需要知道接口的作用是什么就可以了(有文档更好,但大部分都没有);其次,自己去读开发的代码;然后,根据该接口功能及代码写测试用例。

用例设计:

1:写一个程序去调用该接口,看是否能够达到该接口所定义的功能

2:根据该接口参数,构造不同的用例,测试接口在参数合法及非法情况下能否达到预期效果

3:根据该接口中的逻辑,设计不同条件的用例,测试该接口实现代码的逻辑

4:进行容错及健壮性测试

5:静态检测代码,看是否有内存泄露、或永远走不到的分支、代码规范及逻辑是否合理。

6:对于一些接口,需要进行多线程测试

实现方法

工具来说是很多的,比如loadrunnersoapUIJemter等都是可以实现的,本文章中就直接用loadrunner实现,下面的是例子,测试的接口WSDL的链接:

http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL

接口测试协议说明

接口测试我们一般用WSDL协议的,WSDL是网络服务描述语言 ,是对Web Service的描述语言,是一种接口定义语言,用于描述Web Service的接口信息等。

测试步骤

创建脚本

LRVirtual User Generator并新建一个协议为“Web Services”的脚本如下图:

 

导入WSDL 

新建成功后进入功能和编写界面后,先点击“Manage Services”打开管理服务界面(如下图①),在弹出的“Manage Services”窗口中点击“Import”(如下图②),然后在新打开的“Import Service”的窗口中选择WSDL的导入形式(如下图③)。因根据WSDL来自不同的方式,选择对应的方式进行导入

 

而本手册以“URL”的形式进行导入,因此填入对应WSDLURL后点击“import”(http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx?WSDLWSDL为公网的各地市天气Web ServiceWSDL描述地址)。导入成功后将可以看到该WSDL提供的接口描述信息,最后点击“OK”完成WSDL导入。

 

选择发送请求的方法和内容

导入WSDL成功后,进入默认生成的Action函数中,并让光标停留在该函数中(为了便于后续测试将“Service Call的方法”添加至Action函数中,如下图①及画圈处);点击“Add Service Call”(如下图②);在打开的“New Web Service Call”窗口中,右上角呈现可调取的方法(如下图③)。

 

选取其中一个方法“getSupportCityString”,可在下图中左下角查看到这个方法中的相关参数,而我们主要使用输入参数“Input Arguments”(具体输入填写规则可见WSDL描述文档,若没有明确文档,需与对应开发人员沟通),对应填入合规的请求值“福建”后点击“OK

 

点击“OK”后界面回到了脚本编辑界面,并且LR自动把填写的请求转化为具体的脚本。我们通过“运行按钮”(下图画圈处)进行回放并查看回放日志结果

 

默认配置的回放日志如下图

 

若要查看详细日志可通过Vuser菜单下的“Run-time Settings”中General-log下的日志开启相应的日志类别,成功设置后将会在下一次回放中生效。(回放内容较多因此不在该册内贴事例图)

 

获取单个结果处理方式

在成功回放脚本后Virture User Generator工具栏点“Tree”(如下图①)将编写界面切换至树形界面,再选择对应的发送请求动作(如下图②),并切换至该动作对应的快照页签下的接收显示内容(快照是必须成功回放一次脚本后才可生成)

 

展开上图的Response信息下的“soap:Body”将呈现服务端返回给我们发出请求的对应数据

 

 

然后我们把其中的一个结果作为参数获取如下图:

 

在打开的“XML Parameter Properties”窗口中给该变量定义名称

 

点击OK后在Virture User Generator工具栏点“Script”将树形界面切换至编码界面,后可见LR对应生成的获取单个结果的代码

 

我们通过以下语句进行打印获取参数的结果以验证是否正确

lr_output_message(lr_eval_string("{ParamValueA}"));  //{ParamValueA}”对应定义的变量名

 

 

 





posted @ 2015-01-21 13:53  xxyBlogs  阅读(2469)  评论(1编辑  收藏  举报