课时54
老师主要通过一段面试经历讲了,不懂token是怎么获取的,被面试官不信任的事情。说明这个面试者只知道做,但是不知道所以然,这样的情况,不能拿到理想的薪资。
课时55
postman安装
常见方法method,有get post put delete
状态码200/ok 201/cteated 302/redirect 401/unauthorized 500/internalservererror
知道哪里查看请求头,以及响应头。
课时56
通过实例来展示post使用。会用到网址http://www.webxml.com.cn/zh_cn/web_services.aspx
接口文档中如何获取接口网址?示例文档中host+文件地址=接口网址
Headers中,填写好对应的content-type
body中,选择raw,选择xml(也可能是json),把示例文档中的xml复制到空白处,把占位符替换为实际值。点击send。
课时57
根据抓包工具来进行接口测试,下载安装charles
日常的工作中,经常没有接口测试文档,这样就需要用到抓包工具来辅助测试。
打开charles,点击录制,在浏览器中访问接口,这样charles就可以抓到请求以及响应。
在postman中填写网址,抓到的Header的content-type,输入对应的body格式,点击send。
课时58 鉴权
访问一个需要登录后才能访问的网址页面,页面会自动跳转到login页面,响应码401,这就涉及到鉴权。
认证分为基本认证,常规认证,oauth2.0
鉴权是其中的基本认证,basic auth
使用方法:选择Authorization,Type选择basic auth ,username以及password都填上,点击橙色按钮Preview Request,这样在Headers中会生成对应的key-value键值对。此时点击send,就可以进入想要的网页
课时59 cookie
有的网页需要带cookie参数才可以进入,此时就需要通过抓包工具,获取到最新的cookie,然后在headers里填上cookie,点击sengd可以进入对应网页。
课时60 Charles
设置ssl证书,以及ssl代理。这样就不会有乱码(原因是未设置ssl的时候,大部分https网站的响应信息是加密的)
课时61 回顾
cookie是存在客户端本地的,相对不安全。
session是存储在服务器相对安全。
客户端请求服务器后,服务器生成对应的session id,并把session id返回客户端,客户端将其保存,再次请求(登录后的请求)服务器的时候,session id会作为cookie对象访问服务器,服务器就会根据session id匹配用户,给对相应合适的响应。
token是在移动端APP兴起以后火的,是session的升级版。
因为token每次访问服务器都是不同的,每次服务器都会返回新token给客户端。
websocket相对tcp -ip的特点是,持续keep-live,客户端端与服务端是一直连接的,除非网络出现问题,所以共享单车应用这种技术。Html5以及最新的js中都支持它。
课时62 postman对session的接口测试
获取sessionid,假如cookie很多,选择最下面的一个,因为这个最长。(只是我自己目前的经验,2018年10月23日13:54:05)
课时63 断言和token的获取流程
接口测试的断言有哪些:
1、协议状态码
增加Tests断言,右侧有快捷按键
2、业务状态码
在Tests中,输入
var jsonData=JSON.parse(responseBody)
test[“验证业务状态码是0”]=jsonData.status===0
3、数据验证
test[“验证username字段”]=jsonData.data.username===”710000005”
token在下一次请求的时候必须带着最新一次登录后获取的token。不然会提示验证失败。
如何把token设置成以后可用?
测试套件:简单来说,就是测试用例的集合,
具体到postman上就是一个collection
会用到变量variable
获取token,设置成EnvironmentVariable
使用token的接口中,设置token=”{{$varivableName}}” 就可以发送请求了。
怎么把获取到的token用起来?
把登录接口和使用到token的接口放到同一个collection下,一起run,就可以。
(注意下面的pass数量以及fail数量是根据断言的数量,而不是接口测试用例数量)
课时64 按模块划分和公共数据分离
自动化测试需要有“偷懒”的思想
比如假如有500的接口用例,接口改变,就需要改500次。
所以500次--2s
我们需要达到效果:
无论你怎么变化,我都只维护一个地方
所以需要设置全局变量。比如Url或者端口号就可以设置为全局变量
collection点击“…”点击edit按钮,点击Variables进行编辑全局变量。
设置url变量后,Url里面可以用{{url}}来代替url
postman collection可以建立子文件夹,每个子文件夹放1个模块,比如登录,用户中心
平常工作场景:
1、测试环境部署,冒烟测试(自动化用例)
2、测试环境部署ok,开发合并了代码,自动化测试
3、上线后,冒烟测试,自动化测试(60%-75%)
课时65 newman
安装newman之前需要先安装node.js
在官网下载Mac版本node.js,直接安装,安装后可以发现,node 以及npm都已经安装好,默认在usr/local/bin文件夹下。
安装好以后,可以在terminal中尝试是否正常安装。
然后输入命令安装newman
等待几分钟就可以安装好。
postman的collection可以分享share成链接,也可以导出成export给别人,别人机器中只要装了newman,就可以执行这个collection接口测试。
课时66 postman的设置代理
postman也可以像charles一样抓包,只需要把界面类似于“小广播”按钮的功能打开,设置上对应的端口号,手机也连接上同1wifi,设置代理,在手机上浏览,postman就可以抓到对应的链接以及参数。另外在小广播里可以设置filters,来过滤网址。
windows系统,怎么查找端口被哪个进程占用,以及进程属于哪个软件服务。
mac系统
课时67 postman接口测试实战前置第十五节
基于业务的接口测试才是有意义的接口测试
想要的效果:
接口用例执行完成,pass,业务功能ok
课时68 postman接口测试实战上
老师在之前的基础上,演示了一个商户管理和添加商户的操作。
其中需要注意的是,商户管理是在collection下的文件夹,然后添加商户(以及后面的编辑商户)需要是商户管理下的子文件夹,这样的结构可以很清晰。
先用Charles抓包,知道具体的接口以及接口Url,把请求的信息放到body里面,这样就做好了一个接口用例。
用工具进行接口自动化测试的好处是让数据自己产生数据,自己维护数据,不需要人为参与数据分离。比如token以及shopid的产生以及运用。
当一个商户完成冻结或者激活等操作后,并且接口也没有response此事商户的状态,我们怎么能验证呢?去网页进行查看,就有手工测试,不算完整的自动化测试。需要再次查询这个商户,用Charles抓包,看看哪个接口,然后用postman进行请求并加上断言,来判断商户的状态。
课时69 postman接口测试实战中
添加商户,编辑商户,删除商户,这是一个闭环,可以让接口自动化用例,每次都可以run成功。(不会存在商户或者数据已存在的问题)
另外当全部的自动化接口用例完成后,想在线上测试,只需要修改全局变量的Url,就可以拿到线上使用。一劳永逸。
课时70 postman接口测试实战下
基于业务的接口测试:
a.顺序
b.业务场景合理,反向思维
c.断言合理
d.自信