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输出报告格式
       

 

数据加密

1.1 加密算法分类

加密算法主要分为:哈希算法、对称加密算法、非对称加密算法。

  • 哈希算法:如:MD5/SHA256  ,不可逆【但是之所以有破解的是因为1->md5值固定,可以收集存为数据库再去查询】
  • 对称加密算法:如:DES/AES/CBC
  • 非对称加密算法:如:RSA

此外,还有一种编码,叫Base64(注意它不是加密算法),也是用的比较多的。

 

rsa:加密的密钥叫公钥 解密的密钥叫私钥。也有场合加密用的私钥,解密用的公钥,关键在于一把用于加密 一把用于解密

加密后的结果可以相同 可以不同

 

1.1 哈希算法

哈希是一种加密算法,也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(Hash Value)、杂凑值或者消息摘要。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。

特点:

易压缩:对于任意大小的输入x,Hash值的长度很小,在实际应用中,函数H产生的Hash值其长度是固定的。

易计算:对于任意给定的消息,计算其Hash值比较容易。

单向性:对于给定的Hash值,要找到使得在计算上是不可行的,即求Hash的逆很困难。在给定某个哈希函数H和哈希值H(M)的情况下,得出M在计算上是不可行的。即从哈希输出无法倒推输入的原始数值。这是哈希函数安全性的基础。

代表:MD5、SHA256等

1.2 对称加密算法

双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。

优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。

缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘 钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

代表:DES、AES、CBC等

1.3 非对称加密算法

一对密钥由公钥和私钥组成(可以使用很多对密钥)。私钥解密公钥加密数据,公钥解密私钥加密数据(私钥公钥可以互相加密解密)

缺点:速度较慢

优点:安全

代表:RSA、Elgamal、背包算法、Rabin、Diffie-Hellman、ECC(椭圆曲线加密算法)。 使用最广泛的是RSA算法,Elgamal其次。

1.4 Base64编码

Base64是编码技术而不是加密技术。可以将任意的字节数组数据,通过算法,生成只有(大小写英文、数字、+、/)(一共64个字符)内容表示的字符串数据。即将任意的内容转换为可见的字符串形式。提供解码功能。

 

 

2. 加密算法使用场景

  • 用户登录:md5/非对称 rsa  

 

这也是为什么找回密码 都是重新设置新密码的原因,不可逆了。存入数据库的也不是密码,是加密后的字符串

  • 数据传输一致性:md5

 

比如传输的时候订单1件商品,此时整个请求的传参加密,保存到某个参数上;后端拿到这个参数判断整体参数的加密和这里是否能对上,对得上就是没被修改过。

  • 数据库表存储:md5(双重)/自定义

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值