请求行:请求方法: GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT URL字段: 请求地址 HTTP协议版本:目前常用的是HTTP1.1、HTTP2.0 请求头 请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。 请求头部通知服务器有关于客户端请求的信息 User-Agent:产生请求的浏览器类型。 Accept:客户端可识别的内容类型列表。 Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。 Content-Type:请求体的MIME类型,MIME类型:描述消息内容类型的因特网标准,常见的有application/json、image/jpeg、application/octet-stream等 请求正文:向服务器提交的请求数据,GET请求的参数一般是放在请求行后的键值对,post请求的参数类型多样(表单、json、xml、图片等) 响应行 响应状态码: 1xx:指示信息--表示请求已接收,继续处理 2xx:成功--表示请求已被成功接收、理解、接受 3xx:重定向--要完成请求必须进行更进一步的操作 4xx:客户端错误--请求有语法错误或请求无法实现 5xx:服务器端错误--服务器未能实现合法的请求 响应信息:响应信息是状态代码的文本描述 HTTP协议版本 响应头 Content-Length:表示内容长度 Content-Type:表示后面的文档属于什么MIME类型 Server:服务器通过这个头告诉浏览器服务器的类型 响应正文:响应正文就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是图片就是图片等 GET和POST区别:(理解记忆,自己组织语言,要求从四个方面说) Ø 从参数的传递方面来看,GET请求的参数是直接拼接在地址栏URL的后面,而POST请求的参数是放到请求体里面的; Ø 从长度限制方面来看,GET请求有具体的长度限制,一般不超过1024KB,而POST理论上没有,但是浏览器一般都有一个界限; Ø 从安全方面来看,GET请求相较于POST,因为数据都是明文显示在URL上面的,所以安全和私密性不如POST; Ø 从本质上来说,GET和POST都是TCP连接,并无实质的区别.但是由于HTTP/浏览器的限定,导致它们在应用过程中体现出了一些不同.GET产生一个数据包,POST产生两个数据包.对于GET请求,浏览器会把http header 和data 一并发出去,服务器响应200(返回数据).而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok Charles(理解) 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。代理端口8888 Charles作用: 设代理, 抓包 验证前后端bug 修改请求和响应 模拟慢网 Charles 主要的功能包括:(要会描述步骤) ①截取Http和Https网络封包。 ②支持重发网络请求,方便后端调试。 ③支持修改网络请求参数。 ④支持网络请求的截获并动态修改。 ⑤支持模拟慢速网络。 Charles抓https的包(冒号之前) 1.装证书:点击 Charles 的顶部菜单,选择“Help” –> “SSLProxying” –> “InstallCharles Root Certificate”,然后安装证书的时候根据弹出对话框提示,安装到根证书颁发机构即可 2.抓取https包:菜单栏 proxy -> SSL proxy setting -> 勾选Enable SSL Proxying -> locations 里 添加一个 host 和 port为* 的通配符即可通配所有域名的https包抓取 3.重启Charles即可 (理解)Postman 是一款谷歌开发的接口测试工具,使API的调试与测试更加便捷。它提供功能强大的 Web API & HTTP 请求调试。它能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers。 postman模拟发送get请求(可以自己组织语言) 1、选择请求方式 2、复制请求url和params 3、点击send 4、注意请求头(如果有验证就要添加相关字段,比如百度要加User-Agent) postman模拟发送post请求(可以自己组织语言) 1、选择请求方式 2、复制请求url和params 3、选择请求体类型(none,form-data,x-www-form-urlencoded,raw,binary),填入请求体 3、点击send 4、注意请求头(如果有验证就要添加相关字段,比如百度要加User-Agent) JSON是一种独立于语言和平台、轻量级的数据交换格式, 全称JavaScript对象表示法(JavaScriptObject Notation)。 起初来源于JavaScript这门语言,后来随着使用的广泛, 几乎每门开发语言都有处理JSON的API。 优点:易于人的阅读和编写,易于程序解析与生产。比XML更小、更快、更易解析。 json格式两种{}或[] 选择请求体类型(none,form-data,x-www-form-urlencoded,raw,binary) Ø none:表示不传递数据 Ø form-data:http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。 Ø x-www-form-urlencoded:application/x-www-from-urlencoded,会将表单内的数据转换为键值对 Ø raw:可以上传任意格式的文本,可以上传text、json、xml、html等 binary:Content-Type:application/octet-stream,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件 断言 1、获取响应行 var code = pm.response.code; //获取响应状态码 var info = pm.response.reason(); //获取响应状态信息 2、获取响应头 var content_type = pm.response.headers.get('header_key') //获取响应头 var path = pm.cookies.get('cookie_name') ; //获取cookie信息 3、获取响应正文 var body = pm.response.text(); 4、获取响应时间 var time = pm.response.responseTime; 5、利用正则表达式截取部分响应正文 var title = pm.response.text().match(newRegExp('<title>(.+?)</title>'))[1]; 6、响应正文为json时,可以利用postman进行解析再获取部分响应正文 var json_obj = pm.response.json(); //把响应正文转化为json对象 json_obj.key //json对象名.键名 json_obj.array[3].key //json对象名.数组名[下标].键名 tests[测试名] = 表达式 表达式判断相等===,判断不等!==,判断包含has postman环境变量 (理解)在公司中,一般会存在开发环境、测试环境、线上环境等,如果需要在不同的环境下切换做接口测试,显然我们需要把所有接口的域名进行修改,如果接口测试用例较多,那么修改会非常费力,postman可直接通过切换环境来实现多个环境中的参数切换。 postman设置环境变量:(可以用自己的话描述) 1、点击右上角设置图标(小眼睛),选择ManageEnvironments--Add,在页面中设置环境信息,点击ADD; 2、然后在需要使用环境变量的地方使用{{环境变量名}}替换静态的固定值; 3、设置好后,在左上角的下拉框可以下拉来切换环境。 postman设置接口关联: 在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果,从而让后一个接口能正常执行,这个过程的实现称为关联。 在postman中实现关联操作的步骤如下:(重要) 1、利用postman获取上一个接口指定的返回值 2、使用postman全局变量保存上一个接口的值,代码如下: postman.setGlobalVariable("全局变量名", str); 其中前面的参数为全局变量名称,后面为变量 3、和之前引用全局变量一样,使用{{全局变量名}}即可。
|