Jmeter
Jmeter是Apache开源组织开发并维护的一款性能测试软件,它的运行环境都是由Java来作为底层环境支撑。Jmeter组成:
- 取样器,进行脚本逻辑控制
- 线程组,场景设置
- 监视器,监控我们的脚本运行,取得性能指标
Jmeter脚本录制的两种方式:
一:使用badboy进行录制,能够进行浏览器操作行为的录制,并且能够导出Jmeter脚本的软件。
二:使用代理方式进行录制,业务流程–>录制工具–>脚本制作–>性能测试
Jmeter之HTTP协议接口测试
不同视角的接口:- 开发眼中的接口:模块与模块之间的对接方式
- 测试眼中的接口:可以独立部署成服务的协议接口
常见的接口协议:
- HTTP,超文本传输协议
- HTTPS,安全超文本传输协议
- FTP,文件传输协议
- TCP,网络控制协议
- IP,互联网协议
- UDP,用户数据协议
HTTP协议响应码:
- 1xx,信息响应类,表示接收到请求并且继续处理
- 2xx,信息处理成功响应类,表示动作被成功接收、理解和接受
- 3xx,重定向响应类,为了完成指定的动作,必须接受进一步处理
- 4xx,客户端错误,客户端请求包含语法错误或者不能正确执行
- 5xx,服务端错误,服务器不能正确执行一个正确的请求
HTTP协议请求响应模型:
- 客户端发起请求到api接口层
- api接收到客户端发起的用户请求,api对业务逻辑进行验证
- api将用户输入的数据发给db层
- db层将返回查到 的数据库的条目数给api
- api会将成功或失败的状态码给客户端
- 客户端将返回信息提示给用户
常见的HTTP请求方式:
一:Get请求
- get把请求的数据放在url上,即HTTP协议头上,其格式为:以?分割URL和传输数据,参数之间以&相连。
- get提交的数据最大是2k
- GET产生一个TCP数据包,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)
- GET在浏览器回退时是无害的
- GET产生的URL地址可以被Bookmark
- GET请求会被浏览器主动cache
- GET请求只能进行url编码
- GET请求参数会被完整保留在浏览器历史记录里
- GET只接受ASCII字符的参数的数据类型
二:Post请求
- post把数据放在HTTP的包体内(requrest body)。
- post提交的数据理论上没有限制
- POST产生两个TCP数据包,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
- POST会再次提交请求。
- GET产生的URL地址可以被Bookmark,而POST不可以。
- GET请求会被浏览器主动cache,而POST不会,除非手动设置。
- GET请求只能进行url编码,而POST支持多种编码方式。
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
- GET只接受ASCII字符的参数的数据类型,而POST没有限制