4.8 学习笔记
基于POSTMAN接口测试1.postman工具的介绍a.Home 主页b.工作空间(1)collections 集合添加request请求1.请求(1)设置请求的方法及请求url(2)其他设置paramsget请求的传参Bodypost请求传参none 无参数form-data 就可以支持键值对的传参也可以支持文件传参x-www-form-urlencoded 只支持键值对传参raw可以支持的参数类型格式为json text xml html javascriptbinary把文件以二进制方式传参Headers设置请求头Pre-request-script请求之前的脚本设置Tests请求之后的断言2.响应(2)apis 接口文档(3)environments. 环境(4)mockserver虚拟服务器(5)history 历史记录2.环境变量及全局变量a. 使用场景当接口中某些数据在多个接口中使用这时候可以使用变量来进行管理从而实现一次设置多次使用b.环境变量(1) 针对某个环境的参数设置变量在发送请求过程中需要这些参数的值只需要设置调用即可(2)环境变量的作用范围作用于当前环境(3) 环境变量的调用{{变量名}}c. 全局变量作用的范围作用于所有的请求包括了不同环境下的所有的请求全局变量的调用{{变量名}}3.基于postman实现关联接口测试a.关联接口上一个接口的返回值作为下一个接口的入参b.关联接口实现的方式1.json提取器(1)只能针对返回数据为json格式的数据才可以用json提取器(2)通过json提取器获取当前接口返回值某个值在Tests编辑如下脚本console.log(responseBody);//通过json提取器实现提取返回值中的部分值 --注释var resultJSON.parse(responseBody);var access_tokenresult.access_token;console.log(access_token);//把提取的access_token的值存储成一个变量给关联接口进行调用pm.globals.set(access_token,access_token );2.正则表达式提取通过json提取器获取当前接口返回值某个值在Tests编辑如下脚本console.log(responseBody);//通过json提取器实现提取返回值中的部分值 --注释var resultJSON.parse(responseBody);var access_tokenresult.access_token;console.log(access_token);//把提取的access_token的值存储成一个变量给关联接口进行调用pm.globals.set(access_token,access_token );3.通过在Tests编辑常用函数/脚本js脚本(1)responseBody存储是接口的返回数据(2)设置变量var 变量名称值var resultresponseBody(3)console.log(变量名称实现打印数据进行跟踪调试(4)JSON.parse(responseBody)实现把数据转换为json格式的数据用于json提取器(5)responseBody.match(new RegExp(正则表达式)用正则表达式提取取函数(6)关于取到对应的值设置变量的话 可以利用旁边的常用函数设置环境变量:pm.environment.set(variable_key, variable_value);设置全局变量:pm.globals.set(variable_key, variable_value);设置集合变量:pm.collectionVariables.set(variable_key,variable_value);4.动态参数1.常用的动态参数系统参数{{$timestamp}}生成当前时间的时间戳 {{$randomInt}} 生成0-100之间的随机数{{$guid}} 生成一串GUID唯一的字符串2.自定义参数通过javascript进行设置//设置自定义变量var timesDate.now();pm.globals.set(times, times);自定义变量的调用{{变量名称}}5.postman实现接口的断言1.通过javascript脚本实现断言断言的脚本写Tests2.常用的断言函数有哪些status code is 200 响应的状态是否为200Response body:contains string 检查响应的结果中是否包含字符串Response body:JSON value check 判断检查响应的返回的json数据某个键的值Response body:is equal to a string 检查响应的结果是否等于一个字符串Response headers: Content-type header check 判断响应头中是否包含Content-type响应头Response time is less than 200 ms 响应时间低于200毫秒3.断言时候需要获取自定义变量有三种方式pm.globals.get(变量名称)globals.timesglobals[times]6.postman批量运行测试用例1.run connectionRunner这个工具实现批量运行2.如何分析测试失败的用例单独点击某个接口查看接口的请求url、请求头、请求体数据 、响应头、响应体7.postman的参数化设置1.作用对同一个用例设置多组数据来进行测试2. 测试的数据文件csv格式数据文件JSON数据文件3. 接口参数化如何进行设置1、设置好接口的测试数据注意测试数据必须列的先后顺序赋值值与值之间用,隔开2、修改被循环执行的接口有哪些数据需要调用数据文件中的数据就需要进行对应的修改并保存3、通过Runner选择循环执行的接口选择对应的数据文件去运行4、查看执行结果并进行分析4.注意javascript脚本中如何获取数据文件中某个列的数据data.数据文件某个列的列名接口设置中如何获取数据文件中的某个列的数据{{数据文件某个列的列名}}8.postman实现带请求头的接口测试1. 常用的请求信息有哪些2.带请求头的接口怎么进行测试header添加请求头9.postman接口cookie鉴权、token鉴权1.什么是cookie一小段的文本格式keyvalue2. cookie鉴权的原理1、当客户端第一次访问服务器是在服务器生成cookie信息把cookie信息放到响应头set-cookie把cookie信息发送给到客户端保存在客户端Set-CookiePHPSESSIDojuv3qat6m20dsbfoqm8aqqp66; path/; HttpOnly2、客户端第二次访问服务器时候那么客户端就会在请求头带上cookie信息从而实现cookie的鉴权3. cookie分类1.会话cookie保存在内存当浏览器关闭之后会自动化清除2.持久cookie保存在硬盘浏览器关闭不会被清除只有当失效时间到了才会被清除