一、webservice接口测试
测试webservice接口,可以使用soapUI来进行测试,下面简单用soapUI来调用webservice接口:
1.打开soapUI,新建一个soap工程:
2.我们以天气预报的wsdl地址为例,导入soapUI查看其中的所有接口信息;
wsdl地址 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
3、查看接口及报文,输入参数直接进行调用
- 根元素:Envelope。
- Header元素::不是强制出现,由程序员控制,主要用于携带一些额外的信息,比如用户名、密码
- Body:调用正确,body元素内容应该遵守WSDL要求的格式。
二、HTTP接口测试
2.1 get接口
- 请求URL
http://api.nnzhp.cn/api/user/stu_info
- 请求方式 get
- 请求参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
stu_name | 是 | string | 学生姓名 |
1、直接用浏览器调用
2、使用postman 调用
可以看到postman选择get方法的时候,body是禁用状态,get方法的http接口请求,一般数据都放到URL中。
返回的方式同样也是json串的形式;
3、使用jmeter进行get方法的调用测试
创建线程组
添加HTTP请求
输入域名、URL、选择请求方法、添加key
添加查看结果树
执行接口
可以在查看结果树中查看执行结果及返回数据
2.2 post 接口
2.2.1 登录接口
- 请求URL
http://api.nnzhp.cn/api/user/login
- 请求方式 post
- 请求参数 参数为key-value形式
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
username | 是 | string | 用户名 |
passwd | 是 | string | 密码 |
登陆用户名:niuhanyang
密码:aA123456
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
error_code | int | 错误编码,0为操作成功 |
login_info | object | 登录对象信息 |
userId | int | 用户id |
sign | string | 签名 |
login_time | string | 登录时间 |
1、postman 进行调用
post方法的参数是放在body中的,可以看到参数放到URL中是无效的
把参数放到body中在进行提交
放到body中,以key-value的形式进行传参,返回json串的形式,参照返回参数说明,可以看到登陆成功。
2、用jmeter 进行调用测试
打开jmeter ->添加->threads->线程组
在线程组中添加->sampler->HTTP请求
输入域名、URL、选择方法为post 、输入参数
执行并查看结果返回值
2.2.2 添加学生信息接口
- 请求URL:
http://api.nnzhp.cn/api/user/add_stu
- 请求方式 post
- 参数 ,入参是json类型
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
name | 是 | string | 学生姓名 |
grade | 是 | string | 班级 |
phone | 是 | string | 电话 |
sex | 否 | string | 性别,如果不传,默认为男 |
age | 否 | string | 年龄 ,不传默认为18 |
add | 否 | string | 地址,如果不传默认为北京市昌平区 |
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
error_code | int | 错误编码,1000为操作成功 |
msg | string | 提示信息 |
如上述描述,入参形式为json 的方式,则使用key-value的形式进行传参就不行了,如下:
现在我们用正确的入参方式进行调用
1、postman调用
在postman中,选择方法为post,输入URL地址,在body中选择raw ,输入json串格式的参数
2、使用jmeter调用接口
我们下面看一下jmeter如何进行调用
创建一个http请求,输入域名、路径、方法为post、在body data中输入json ,然后执行
可以在查看结果树中的请求项中查看请求报文内容
在响应数据中查看响应结果,执行成功
2.2.3 学生金币充值
- 请求URL:
http://api.nnzhp.cn/api/user/gold_add
- 请求方式 post
- 参数 : 该接口有权限验证,需要admin用户才可以做操作,需要添加cookie
cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
stu_id | 是 | int | 学生id |
gold | 是 | int | 金币数量 |
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
error_code | int | 错误编码,0为操作成功 |
msg | string | 提示信息 |
如上述描述,入参形式需要添加cookie
1、postman进行调用,添加cookie的方式
cookie是保存在用户浏览器端的一个键值对
session就是保存在服务器的一个键值对,一般session都是存在缓存里面,因为要经常用到,要提升性能的话直接把session放到内存里面。
首先我们通过“获取学生信息”接口查看到学生的id信息,然后通过“登录”接口,获取签名的值如下:(以test 用户为例)
查询出ID=2341
sign值为:cd2b43f1688e472e3a516b5a2c6831e8
现在为学生添加金币
2、用jmeter进行接口的调用
用jmeter测试带cookie的http请求需要添加http cookie管理器
我们先看一下添加cookie的场合进行执行
可以看到没有添加cookie的场合,执行不成功
现在我们添加httpcookie管理器,右键添加->配置元件->HTTP cookie管理器
添加cookie的值
执行,查看请求的数据
2.2.4 获取所有学生信息
- 请求URL:
http://api.nnzhp.cn/api/user/all_stu
- 请求方式 get
- 参数 ,需要添加header信息,key为Referer value 为http://api.nnzhp.cn/
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
error_code | int | 错误编码,0为操作成功 |
all_stu | list | 提示信息 |
1、我们看一下不添加header,直接用浏览器地址栏访问的结果
如下,不添加header访问,提示来路不正确
2、用postman进行调用,添加header信息,并进行调用
执行,结果显示所有的学生用户信息
3、用jmeter进行调用测试
添加http请求
右键添加->配置元件->http信息头管理器
执行结果成功,显示学生信息
2.2.5 文件上传类型
- 请求URL:
http://api.nnzhp.cn/api/file/file_upload
- 请求方式 post
- 参数
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
file | 是 | file | 文件 |
返回参数说明
参数名 | 类型 | 说明 |
---|---|---|
error_code | int | 错误编码,0为操作成功 |
msg | string | 提示信息 |
1、用postman进行调用,输入URL地址,key的类型选择file类型
选择文件进行上传
执行操作成功
2、使用jmeter进行调用
参数名称file,MINE类型根据文件类型填写
执行,操作成功
【文章参考】https://www.cnblogs.com/phoebes/p/8029464.html
https://www.cnblogs.com/liulinghua90/p/10075650.html