【自动化】自动化场景经验

1.先行了解:cookie,session,token

cookie:
  • 概念:是服务器产生的,存在在客户端的一段文本信息。格式是字典
  • 分类:
    • 会话级即session:保存在内存,当浏览器关闭就会丢失
    • 持久化:保存在硬盘,当失效时间到了就会丢失
复制代码
###### 如何鉴权?/如何与http建立联系的?

* 客户端第一次访问服务器,服务器产生cookie并通过响应头的方法在set-cookie中传输到客户端,之后客户端请求服务器时会自动带上该cookie
  • 缺点: 信息保存在客户端,敏感信息不安全
复制代码
###### 鉴权解决方案:

* 取接口A的cookies并写入到yaml文件中;接口B读取yaml文件中的cookies并作为参数传递给请求参数Cookies
session:
  • 概念:服务器产生的且保存在服务器的.

复制代码
###### 如何鉴权?

* 客户第一次访问服务器的时候,服务器端保存一个加密的sessionid,通过cookie将sessionid保存到客户端。客户再次请求服务器端的时候只发送sessionId
  • 优点: 解决了cookie敏感信息保存在客户端不安全的问题

  • 缺点:用户体量大时,会导致服务器崩溃

复制代码
###### 鉴权方案: 使用requests.seesion()自动接口关联cookie

*

      class project:

          # 创建类变量 session对象
          session = requests.session()

          def func(self):

              project.seesion.request(method,url,data)
cookie与session的区别
复制代码
|--------|------------|-------------|
| **区别** | **cookie** | **session** |
| 存储位置   | 保存在本地      | 保存在服务器      |
| 存取方式   | 仅可保存ASCII码 | 任意数据类型      |
| 数据安全性  | 相对较差       | 相对较好        |
| 有效期    | 长时间存在      | 会话结束/浏览器关闭  |
| 存储大小   | 一般不会超过4k   | 无限制         |
token
  • 概念:服务器产生,保存在文件/数据库

  • 分类:

    • access_token:有15分钟时间限制

    • refresh_token: 有15天

复制代码
###### 如何鉴权?

* 用户登录后,发送一个token令牌,下次用户请求时带上token,服务器端解密
复制代码
###### 鉴权方案:

* 取接口A的响应头中的token并写入到yaml文件中;接口B读取yaml文件中的token并作为headers的参数传递
sign签名
  • 应用场景: 第三方支付,银行,金融等安全要求比较高的

2. 验证码的功能处理方式

  • 方式一: 去掉验证码(图片类/短信类)
  • 方式二: 设置万能码(固定的数字验证码/固定图片)
  • 方式三:添加登录成功的cookie
    • 在selenium中使用add_cookie()方法将用户名和密码写入到cookie中来跳过验证

3. 对数据库的校验,使用的场景

  • 用例断言
  • 脚本执行前后的数据初始化和清理
  • 相关接口是否执行成功

4.接口自动化遇到的问题?

  • Q:接口文档不完整
    • A:与开发人员沟通补充文档或者给出接口示例
  • Q:接口请求参数的多样性
    • A: 数据驱动,对请求参数自动化
  • Q: 因网络,服务器等原因导致的用例不稳定
    • A: 加入重试机制和日志记录功能,保证测试的稳定性
  • Q: 接口的错误处理
    • A: 加入异常处理机制
  • Q: 代码质量问题
    • A: 提高代码的可扩展性和可维护性,减少代码重复率
  • Q:接口的请求频率问题
    • A: 控制请求频率,防止系统崩溃
  • Q: 接口变更的频繁
    • A: 及时更新脚本CSDN

5

相关推荐
꧁坚持很酷꧂几秒前
Linux Ubuntu18.04下安装Qt Craeator 5.12.9(图文详解)
linux·运维·qt
小诸葛的博客1 小时前
详解Linux中的定时任务管理工具crond
linux·运维·chrome
一默19912 小时前
CentOS 7.9升级OpenSSH到9.9p2
linux·运维·centos
keep intensify2 小时前
Linux常用指令
linux·服务器·php
BranH3 小时前
Linux系统中命令设定临时IP
linux·运维·服务器
极小狐3 小时前
极狐GitLab 项目功能和权限解读
运维·git·安全·gitlab·极狐gitlab
宁酱醇3 小时前
GitLab_密钥生成(SSH-key)
运维·ssh·gitlab
秋风起,再归来~3 小时前
【Linux庖丁解牛】—进程优先级!
linux·运维·服务器
Lalolander3 小时前
设备制造行业如何避免项目管理混乱?
运维·制造·工程项目管理·四算一控·epc·环保设备工程·设备制造
LucianaiB4 小时前
【金仓数据库征文】_AI 赋能数据库运维:金仓KES的智能化未来
运维·数据库·人工智能·金仓数据库 2025 征文·数据库平替用金仓