正式课程-26.接口测试工具jmeter之常用测试元件
1. 课程目标
- 接口的分类
- 接口数据传递的格式/请求方式
- 接口测试工具的选用
- 工具的使用操作讲解--详解jmeter
- jmeter完成http、soap、jdbc请求
- 如何使用工具进行接口测试,查看日志,查看数据库
2. 接口分类
从平台划分:分为内部接口和外部接口
从类型/协议来说:分为http接口和soap( webservice)接口
但是从实质上来说soap请求也是http类型的请求,只不过是把http类型加封了一层webservice协议,所以就变成了soap类型请求。
当然接口类型有很多种,但是我们这里只重点讲http类型请求( get/post请求方式),稍微介绍下soap类型请求。
get使用url传参,post使用请求体传参,get没有post安全;因此一般提交数据用post,获取数据用get
get post请求方式有啥区別?
get/post的区别:Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求
这种说法没有错。
比如一个页面,你要获取它的资源信息,用get是可以把页面获取,并缓存下来。
get和post主要区别在于get本身的一些局限性。
比如将请求信息放在URL里实际是一种相当不安全的做法。
举例:注册,实际上get和post都可以。
但是行业惯例,是用get做查询,用post做提交。
是因为对于get的url传参,是可见的,所以都认为很不安全。
post是body,表单传参的,是不可见的。相对安全一点。(使用一些技术手段也是可以看得到的)
3. 接口数据传递的方式
一般数据的传递方式: xml/json 两种格式
XML格式:每一对tag会包裹一对数据,传递到接口。假设是一个登陆的接口
1 标签对
10001
null
注册成功
Json格式:用花括号括起来,键值对组装成数据,并传递到接口。
{"regname": "lulu","pwd":"1234561", “mobilephone”: “18687735353”}
4. 接口测试的原理
模拟客户端向服务器发送报文请求,服务器接收请求报文后对相应的报文做处理并向客户端返回响应结果,客户端接收结果的一个过程。
客户端收发请求的模拟可以是工具例如jmeter来完成,也可以是自己编写脚本来模拟。
5.接口测试工具介绍
接口工具只是一个辅助手段,最重要是你的测试思想
工具介绍:
- Firefox插件--httprequester
- Chrome插件--Postman--推荐使用
(postman工具讲解视频链接:https://pan.baidu.com/s/1vFN3vNQQh6AJzESYvn7B9g 密码:ytxa)
- soapui--推荐使用
- Jmeter--重点讲解
- 代码实现
- 浏览器
5.1. firefox插件-httprequester
支持http接口测试:【不支持soap类型的测试】
49版本之前的firefox有此插件,在附加组件页面搜索此插件进行安装。
5.2. jmeter的基础实用详解
常用测试元件
- 测试计划:默认
- 线程组:并发数、并发时间、请求循环次数
- 采样器:较常用HTTP请求、JDBC Request、SOAP/XML-RPC Request
- 监听器:查看结果树
- 断言:响应断言。通过对比服务器返回的响应数据,判断请求是否成功
- 配置元件:用户定义的参数、
- 后置处理器:正则表达式
- 添加线程组、http请求
- 查看结果树
- 查看数据库
5.2.1. 转义字符
web 开发中通过英文问号(?)方式在浏览器地址栏中传值时。浏览器是通过“&”来区分问号后的参数个数的。 如果出现传值参数中带有“&”时,在接受页面就会出现错误,类似如下请求路径:/next.jsp?param1=hendhs89&furej & param2=sss
参数param1中含有转义字符“&” ,这样会导致被请求页的参数接收错误。
在传值前 通过 java.net.URLEncoder.encode(param1) 编码处理后,可将转义字符转为16进制;
特殊字符
|
URL中用途
|
转义方式
|
+
|
表示空格
|
%2B
|
(空格)
|
应换用加号 + 或 %20 表示
|
%20
|
/
|
分隔目录和子目录
|
%2F
|
?
|
分隔实际的URL和参数
|
%3F
|
%
|
制定特殊字符
|
%25
|
#
|
表示书签
|
%23
|
&
|
URL中指定的参数间的分隔符
|
%26
|
=
|
URL中指定参数的值
|
%3D
|
!
|
URL中指定参数的值
|
%21
|
5.2.2. 用jmeter进行数据库的测试
- 添加JDBC Request请求、察看结果树
- 添加配置元件JDBC Connection Configuration
注意:jdbc request与jdbc connection configuration中的varible name 需一样
- 添加mysql驱动包
5.2.2.1. 相关驱动类
5.2.3. jmeter做soapui请求项目
- 添加http请求,填写服务器名称、请求信息等
- 添加http信息头管理器
- 运行,查看结果树