01_jmeter简用和http协议简介
一、HTTP协议简介
HTTP协议又叫做(超文本传输协议),是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP默认端口号为80,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求
- 一个HTTP协议包含两个部分 请求 和 响应
1 . HTTP请求
一个HTTP请求到服务器的请求消息包括以下格式:
① 请求行(request line):包含了“请求方法,URL、协议版本”
② 请求头部(header):host cookie等主要信息
③ 空行和请求数据 :get无,post会放请求数据
而对于我们测试来说,一般注意4个模块:
1 . 请求方法:请求的方法分为两种:post或者get方法,
- get方法和post方法:
get请求的正文(数据)放在URL后面,格式`www.baidu.com?user=XX&password=XX`
get方法一般是向服务器请求数据才使用
get方法的正文一般不超过2KB
get方法的安全性不高,因为get方法的URL会把正文信息显示在请求行里
post请求的正文放在请求头下面,中间有个空行做分隔
post一般是想服务器传输数据,正文的数据量比较大
post的正文放在请求数据的位子,在URL上不显示,稍微比较安全
2 .请求URL,又称请求路径,一个URL又三个部分组成
- 协议:http 或者 https
- ip、端口或者域名
- 请求路径,就是代码的工程路径
3 .请求头部
- cookie: 这里会保存登录后产生的session、token
4 .HTTP响应
- 当我们理解http协议以后,我们就可以用jmeter去做接口测试了,去模拟浏览器发送请求!
要使用jmeter首先要安装一个java jdk,并给jdk配置好环境变量,配置方法可自行百度,然后打开jmeter/bin/jmeter.bat文件,运行jmeter!
其实创建一个jmeter工程还是比较简单的,只需要创建三个模块就可以使用,并监控
1 .首先右键“测试计划”,添加一个线程组
2 . 右键线程组,然后添加一个“http请求”
3 .右键线程组,添加一个“查看结果树”,可以监控发送的请求和接收的响应
- 这个时候让我们去了解一下怎么去模拟发送请求吧!
点开http请求,熟悉一下界面!
① 输入ip或者域名www.jiansu.com
或者180.163.150.161
ping出来的ip
② 输入端口,输入域名会自动解析的,就不需要在输入端口了,一半在做接口测试的时候,接口规范文档中会有
③ 这里是请求行的协议版本,http或者https
④ 请求的方法:get或者post
⑤ 输入路径,就是代码工程路径
⑥ 这个请求要传输的内容,key:value式的键值对,左边参数名称,右边参数值
⑦ 比较复杂的正文可以写在这里,xml或者json等格式的请求体
现在我们去抓取一个接口,然后填进jmeter中
在谷歌浏览器(基本上都是用谷歌)中我们按F12,
这是一个登陆界面,首先我们输入账号、密码,右上角悬着network,红色的状态:现在浏览器的开发者模式正在运行
- 然后我们点击登录
① 这里是我们点击“登录”以后,跳转到这个界面后加载的一些文本数据
② 请求的url
③ 请求的方法
④ 编码,可以忽略200 成功
⑤ 请求参数(正文)
JPG、png:工程图片路径; js:JavaScript; css:html的CSS文件; gf 都不是请求的URLname,所以点击第一个文件name
名称 | 值 |
---|---|
userName | wuling |
password | 2cc3b3a6d8358a1d68134158044e6ca4 |
submit | 登录 |
请求方法: http
ip或者域名:www.guoyasoft.com
端口:8080
工程代码路径(访问路径):/guoya-client/user/login.action
请求正文:
名称 | 值 |
---|---|
userName | wuling |
password | 2cc3b3a6d8358a1d68134158044e6ca4 |
submit | 登录 |
然后我们把数据填写到jmeter中,如下图:
然后我们点击:右三角,在“查看结果树”中,看执行情况;
-
绿色表示执行成功,"请求"中我们可以看到: 请求方法、url、请求正文都是和我们输入的一样,也和浏览器中一样
-
响应数据中,我们可以看到传给我们的是一个html的代码,因为jmeter并没有把html编码转换成web页面的功能,所以我们要从HTML代码中找一下关键字,下面就是一串超链接的代码,和页面上相同
-
GOOD,这样我们一个简单的接口测试就完成了!