Unittest框架-接口自动化学习笔记---更新ing
-------模块学习总结--------
1.可以根据接口文档独立完成用例设计到自动化测试输出结果到excel表格
2.可以根据接口文档独立完成用例设计到unitest框架使用数据驱动DDT自动化执行用例并输出结果到Html
3.对于http相关的报文信息有了进一步认识,如session、响应的格式转码问题有了简单的认识并有思路去排查。
ps:学习笔记待复习时持续更新整理
基本概念
请求方法
主要的请求方法有:GET、POST、DELETE 、PUT 、HEAD 等方法
最最常用的方法就是:GET方法、POST方法
GET方法:
- GET 方法提交数据不安全,数据置于请求行,浏览器地址栏可见;
- GET 方法URL长度每个浏览器限制数量不同,最后在2000字符以内
- GET方法速度快
- 默认的请求方法,不需要提交大量数据、无敏感、保密数据时使用
- 可能会被缓存
- 请求可能会被保留在浏览器历史记录中
POST方法:
- POST 方法提交数据安全,数据置于消息主体内,浏览器地址栏不可见
- POST 方法提交的数据大小没有限制
- POST 方法速度慢
- 需要提交大量数据、有敏感、保密数据时使用
- 不会被缓存
- 请求不会被保留在浏览器历史记录中
Cookie与Session
一、快速理解
用户登录成功服务器创建session,返回给客户端。客户端浏览器把session保存在它的cookie中。
二、过程描述
- 登录成功服务器立马创建Session,并通过【响应头】中的set-Cookie属性把session返回给客户端
- 浏览器把响应头中的set-cookie内容存起来,存在浏览器自己的cookie中
- 以后浏览器每次发送请求时,都会把该站点的全部cookie通过请求头中,传递给服务器
三、解决了什么问题
- session 和 cookie 合作:可解决登录问题
- 利用cookie 可以实现记住用户名
- 利用cookie 可以实现切换系统的风格
cookie特点
- Cookie是分站点的,站点和站点之间的Cookie是相互独立的
- 浏览器的Cookies是保存在浏览器的某个位置的
- 服务器端可以通过:响应头中的set-Cookie参数,对客户端的Cookie进行管理
- 浏览器的每次请求,都会把该站点的Cookie发送给服务器
实现登录:Cookie + Session 配合使用的。
session机制
- session 是一个对象,是服务器产生的,保存在服务器的内存中的
- session有自己的管理机制:包括session产生、销毁、超时等
- sessionID是session对象的一个属性,是全局唯一的,永远都不会重复的
Token
Token可以翻译为令牌。--字符串--加密的
- Token 也是由服务器产生的,存在服务器的内存或硬盘中
- Token 也有一套产生规则,会涉及到加密算法
【用Token 来实现登录】
- 开发提供一个获取Token接口,根据用户名+密码,获取一个Token值
返回一个Token (字符串)
- Token 值服务器通过什么给客户端的呢?
-
- 通过响应头给客户端的。====次要
- 通过响应消息体传给客户端。====主要
- 通过Cookie传递给客户端 ====很少
- 其他途径
- Token 是怎么传递给服务器的
-
- 通过请求头 ====主要
- 通过请求体单独的一个参数 ====次要
- 其他途径
UnitTest概念与用法
- UnitTest是python自带的单元测试框架, 主要适用于单元测试,可以对多个测试用例进行管理和封装
- UnitTest 也叫 PyUnit,它提供了很多类和方法来处理各种测试工作
- 1测试用例----testcase
-
- 测试用例必须在类中
- 测试用例所在的类,必须继承TestCase
- 测试用例的方法名称必须以test开头
- 测试用例的执行顺序,按照Ascill码顺序(0~9,A~Z,a~z)
- 利用父类TestCase的assertXXXX方法来断言
- 用@unittest.skip(reason)装饰来跳过测试用例
- 2测试固件----testfixture
-
- 也叫测试夹件,主要工作是【初始化和善后】
- 测试固件分为两种,一种是类级别的,一种是方法级别的
- 类级别的测试固件,所有测试用例执行之前与之后运行一次
- 方法级别的测试固件,每个测试用例执行之前与之后都运行一次
- 3测试套件----testsuite
-
- 是用来组织测试用例的
- 4测试运行器----testrunner
-
- 是用来执行测试用例的
- 常用经典的输出是HtmlTestRunner输出报告格式