接口自动化测试的优缺点:
优点:
测试复用性。
维护成本相对ui自动化低一些。
回归方便。
可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。
缺点:
不能完全取代手工测试。(自动化永远不能替代手工测试,只是提高测试效率)
手工测试比自动化测试发现的缺陷更多,自动化测试不容易发现新的bug。
get请求和post请求的区别:
get请求一般是从后台服务器上获取数据用于前端页面的展示(例如:看到列表页面等),post请求是向服务器传送数据(登录、注册、上传文件、发布文章)。什么时候用get,什么时候用post取决于开发。无论用post请求还是get请求,都能完成对数据的增删改查,分不同的请求方式更多的是一种约定。
get请求的请求参数是拼接在url后面的,只能以文本的形式传递参数,请求参数会显示在地址栏,数据长度受限于url的长度,传递的数据量小(4kb左右,不同浏览器会有差异),post请求的请求参数是放在request body里面,传递数据量大(默认8m),对数据长度也没有要求。get请求可以在浏览器中直接访问,而post请求只能借助工具完成(比如:postman、jmeter)。
get请求速度快,安全性不高;post请求一般用于像登录这种安全性要求高的场合,请求不会被缓存,也不会保留在浏览器的历史记录中。
前后端分离
开发模式
以前老的方式:
产品经理 / 领导 / 客户提出需求(提出文字需求)
ui做出设计图
前端工程师做html页面(用户能看到的页面)
后端工程师将html页面套成jsp页面(前后端强依赖,后端必须要等到前端的html页面做好才能套jsp。如果html发生变更,就很麻烦,开发效率低)
集成出现问题
前端返工
后端返工
二次集成
集成成功
交付
新的方式:
前后端约定接口 & 数据 & 参数
前后端并行开发(无强依赖,可前后端并行开发,如果需求变更,只要接口 & 参数不变,就不用两边都修改代码,开发效率高)
前后端集成
前端页面调整
????通过f12打开浏览器开发者工具进行抓包,返回数据是json格式的就是前后端分离,返回时html页面就是没有前后端分离。
微服务的概念:
将大模块切分成小模块。减少代码的耦合度,从而降低模块与模块之间的影响。原先是一个jar包里面包含所有模块,改一个模块就有可能影响其他模块,现在是将一个一个的模块都打成一个一个的jar包,模块与模块之间的交互通过接口,哪个模块出了问题,只需要修改那个模块的jar包,避免因为修改一个模块的代码导致其他模块出错。
接口自动化requests环境搭建
接口自动化核心库:requests
安装requests库的方法:
方法一:
命令行安装,打开cmd或者终端,输入以下命令:
方法二:
在pycharm中安装,settings --> project --> project interpreter --> 点击“+”号 --> 输入request安装
测试环境是否ok
响应超时timeout
json、url、text、encoding、status_code、encoding、cookies
json(javascript object notation, js 对象简谱) 是一种轻量级的数据交换格式。它基于 ecmascript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 json 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json格式在python里面相当于字典类型。
json格式化:http://www.bejson.com/jsonviewernew/
url在线编码转换:https://www.w3cschool.cn/tools/index?name=urlencode_decode
get请求方式
post请求方式
put请求方式
delete请求方式
手动传入cookie的值(每次通过浏览器f12抓包,然后复制request header里面的cookie)
cookie自动获取
批量获取cookie脚本
unittest框架结构:
代码地址:https://github.com/itcaituotuo/unittest_api
if _name_ == '__main__':
if __name__ == '__main__'的意思是:
当.py文件被直接运行时,if __name__ == '__main__'下的代码块将被运行;
当.py文件以模块形式被导入时,if __name__ == '__main__'下的代码块不被运行。
闭环断言(新增 --> 查询 --> 修改 --> 查询 --> 删除 -->查询)
htmltestrunner.py百度网盘链接:
链接:https://pan.baidu.com/s/1oeh-p0d7saj2i7qevycavw
提取码:p20c
postman、jmeter、requests总结:
postman:接口功能测试
jmeter:接口性能测试
requests:接口自动化
三个的共同特点:都能完成接口功能测试。