测试基础篇之(postman接口和Fiddler测试)
Posted 小布丁value
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试基础篇之(postman接口和Fiddler测试)相关的知识,希望对你有一定的参考价值。
测试基础篇(一)postman接口测试
测试人员职责
测试人员职责
1、产品经理 ------> 负责设计产品的原型图和PRD
2、项目经理 ------>负责并保证高质量的产品按时完成和发布的专职管理人员。
3、开发人员 ------> 负责完成公司新产品开发计划;开发人员主要分为 前端开发、后端开发、ios开发和安卓开发。
4、配管 ------> 主要负责线下测试环境的搭建,测试环境包括开发环境,测试环境,Staging环境(细讲),还有就是代码库的管理和jar包管理,保证线下服务正常提供。
5、运维人员 ------> 负责维护生产环境的稳定,测试环境的包正常上线等等。
6、测试人员 ------> 负责保证发布出去的产品达到了一定的质量标准。测试分为功能测试、性能测试、测试开发(包含自动化测试)
测试流程
- 需求文档(文档评审)
- 根据需求文档设定测试计划
- 编写测试用例
- 执行测试用例
- 编写测试报告
面试题1.介绍一下你如何使用postman进行接口测试
面试题: 介绍一下你如何使用postman进行接口测试?
1.思路:接口测试流程:见上哦
2.执行
2.1. 测试报告 打开postman 输入开发人员给的接口地址,
2.2选择Http请求,点击“send”按钮,即可查看返回结果 http请求常见的是get,post请求。
URL:供大家参考
http://apis.juhe.cn/simpleWeather/query?city=西安&key=16dd4fc492fcc9a9ca6d1068ecacc16b
Get请求在传参跟post请求的区别:
1.GET----获取资源 GET 方法一般用来从服务器上获取资源的方法。
服务器端接到 GET 请求后,就会明白客户端是要从服务器端获取相应的资源,然后就会根据请求报文中相应的参数,将需要的资源返回给客户端。
2.post POST----数据提交 POST 方法一般用于表单提交,将客户端的数据塞到请求体中发送给服务器端。
get 和 post 区别:
1)get 请求无消息体,只能携带少量数据; GET 方式提交的数据最多只能有 1024 字节,而 POST 则没有此限制
post 请求有消息体,可以携带大量数据;
2)get请求在params中体现在url中
而post请求书写在body中,不体现在url中。
3)GET 请求请提交的数据放置在 HTTP 请求协议头中,
而 POST 提交的数据则放在实体数据中;
面试继续引申:post数据类型有哪些?
None 无参
from-data 以key_value的形式存储:key 可以是text 或File
x-www-form-urlencoded 以key _value形式存储 ,key只能是text
raw :xml html txt jsm
binary 以二进制文件File的形式存储
1. None 无参
2.from-data (key_value)存储:key 可以是text /File
multipart/form-data,它将表单的数据组织成
Key-Value形式
,也可以上传文件
当上传的字段是文件时 会有 content-type 来说明文件类型;content-disposition,用来说明字段的一些信息;
由于有 boundary 隔离,所以 multipart/form-data 既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件
点击上传文件,发送请求
3.x-www-form-urlencoded 以key _value形式存储 ,key只能是text
application/x-www-from-urlencoded,将表单内的数据转换为Key-Value
可以通过返回内容看出来,我们需要请求的数据类型是否正确
4. raw :xml html txt jsm
xml方法
5. json数据
我们通过请求后,继续查看返回后的内容,发现现实的数据类型也是json的
6. binary表示只可以上传二进制数据
用来上传文件,一次只能上传1个数据
给大家举个小栗子,创建二进制文件,保存在,后缀名为.txt格式
form-data和x-www-form-urlencoded有什么区别呢?
form-data:既可以上传文件等二进制数据,也可以上传表单键值对。
x-www-form-urlencoded:只能上传键值对,不能用于文件上传。
面试题2:分析bug是前端还是后端的?
平常提bug的时候,前端开发和后端开发总是扯皮,不承认是对方的bug
这种情况很容易判断,
先看请求报文,对着接口文档,看请求报文有没问题,有问题就是前端发的数据不对 请求报文没问题,那就看返回报文,返回的数据不对,那就是后端开发的问题咯
面试题3:没有接口文档,如果做接口测试?(这是个送命题)
没有接口文档,那还能咋办,瞎测呗!一个公司的开发流程里面,如果接口文档都没有,是无法展开接口测试的,你都不知道这个接口干什么的,也不知道具体每个字段代表什么意思,那还测啥呢?
–当然,你肯定不能回答面试官不测(心理mmp,脸上笑嘻嘻),接下来就是扯犊子时间
- 没有接口文档,那就需要先跟开发沟通,然后整理接口文档(本来是开发写的,没办法,为了唬住面试官,先说自己整理了)
- 没有接口文档,可以Filddler抓包看接口请求参数,然后不懂的跟开发沟通
- 浏览器 ->高级设置 -> 系统 -> 代理模式 ip cmd: ipconfig
- Fiddler -> filters -> 关心ip run
- 请求 相应
Fiddler抓包工具
通过浏览器访问测试网站,同时Fiddler抓包工具,获取抓包数据,手动JMeter开发脚
汇总:
通过Fiddler改写HTTP代理,让数据从它那通过,来监控并且截取到数据
在打开Fiddler的一瞬间,他就已经设置好浏览器的代理。
当你关闭时,它又帮你吧代理还原了。所以一般不要手动设置。
下载Filddler后双击启动就好
设置完后点击使用fiddler抓包
使用fiddler抓包
如果响应跟文档不一致,文档描述不够细,或者跟预期结果不相同,不建议直接问开发,自己使用抓包工具抓出来后看。抓不清楚再去问
Postman接口测试 – 变量
Postman变量相关的面试题:
postman使用的变量类型有哪些
Postman提供了4种变量类型
环境变量(Environment Variable):
本地变量(Local Variable)
全局变量(Global Variable)
数据变量(Data Variable)
1 环境变量
环境变量:-> 针对于 选择这个环境的接口
环境变量值在同一个变量值随着环境的不同而变化。比如测试环境和生产环境只是host不同,那就可以吧host设置成一个变量,当切换成测试环境用的就是测试环境的host,切换到生产环境就是生产环境的host。
http://{{testhost}}/ 测试环境下的 测试结果
针对测试环境进行设置变量,如测试环境,线上环境,预发布环境
1.将百度设为环境变量
运行结果:
将城市设为环境变量
2 本地变量
主要是针对单个url请求设置的变量,作用域只是局限在请求范围之内
Url: http://apis.juhe.cn/simpleWeather/query?city={{city}}&key=331eab8f3481f37868378fcdc76cb7cd
给本地变量赋值操作:
3.全局变量
当环境变量和全局变量名称一样时,切换到某个环境时,环境变量会覆盖全局变量
全局变量在所有的环境里,变量值都一样,全局变量的作用域是所有请求
全局变量设置方式:界面设置/脚本设置
这里没有选择环境,然后直接进行请求,发现是请求成功了
4 数据变量
-参数化 批量测试
数据变量是通过导入外部数据文件(txt 文件 json文件或CSV文件),来获取变量数据
接口地址
http://apis.juhe.cn/simpleWeather/query
请求参数
city:要查询的城市名称/id,城市名称如:温州、上海、北京,需要utf8 urlencode
key:331eab8f3481f37868378fcdc76cb7cd
这里我们通过更改城市的名称来做参数化,首先把想要测试的数据存放在TXT文件中(也可以通过csv文件格式),这里准备的数据包括异常的和正常的,可以通过postman中添加断言判断用例是否通过。
注:这里更改了编码格式,防止乱码
这里的第一行要是请求的参数名称,下面的是参数内容
因为参数化,需要增加断言,要不然可能不知道哪条数据请求成功,哪天数据请求失败。这里用到了查询返回内容中是否存在XX字符串
批量执行入口:
1、选择请求接口内容
2、选择测试环境
3、填写请求次数(和参数内容对应)
4、上传参数化数据内容
5、查看数据内容是否正确
6、点击执行结果
https://blog.csdn.net/weixin_41665637/article/details/97645025
面试:会不会用postman做批量执行?
1.测试用例保存文件,接口变量填到Tests Run
数据 -> 本地 -> 环境 -> 全局 优先级由低到高 postman不能做接口自动化,可以批量进行接口测试,提高工作效率
批量测试常见错误
六、postman的报错:This request does not have any tests.处理办法
第一步:检查变量名称是否对应:
第二步:是否设置了检查点
第三部:是否点了保存
https://blog.csdn.net/weixin_41665637/article/details/97645025
以上是关于测试基础篇之(postman接口和Fiddler测试)的主要内容,如果未能解决你的问题,请参考以下文章