当前位置: 首页 > article >正文

接口自动化测试实战

测试前准备:

1、项目的介绍

是一个什么项目、项目技术、项目要测的接口和业务流程、业务路径=测试用例(通过业务流程来梳理业务路径)

2、链接和登录密码:

客达天下icon-default.png?t=O83Ahttp://huike-crm.itheima.net/#/clue

客达天下账号admin,密码:HM_2023_test

3、理解前端(客户端),后端(服务器),以及前后端分离

一、项目介绍
1、客大天下是什么
  • 一款销售管理系统
2、客达天下有什么?
  • 技术:前后端分离
  • 业务:合同管理、课程管理、活动管理等

3、客大天下测什么接口:
  • 合同管理业务
  • 课程管理模块

三、业务场景测试和(业务路径)测试用例

1、如何测试业务接口?

根据业务流程图梳理业务路径

设置测试用例覆盖每一条路径

2、测试用例的编写

四、新增合同成功的测试用例
1、获取验证码

2、登录
{"username":"admin","password":"HM_2023_test","code":"2","uuid":"80c23c617c1148de92557595b5d659b7"}

3、添加课程成功

4、上传合同成功

注:图2 的get要改为post

5、合同添加成功

6、合同查询列表

五、批量执行(对新增合同成功测试用例批量执行)

点击测试集-点击run

六、单接口测试
1、登录接口的测试用例
2、断言
3、其他接口略
七、接口自动化流程
1、搭建自动化测试环境

Python+pytest(业务和单接口用例的管理)+requests

2、安装requests

pip3 install requests

3、自动化测试的目录框架
apiTestFramework 项目名称
api定义封装被测接口
script定义测试用例脚本
data存放测试数据文件
report存放生成的测试报告
common存放通用工具类
config.py定义项目的配置信息
pytest.inipytest配置文件

4、requests发送请求

requests.请求方法(URL,params=None,data=None,json=None,headers=None)

params:请求查询参数

data:请求头为form表单参数

json:请求体为json参数

5、response查看响应
response.status_code查看响应状态码
response.json()查看json形式的响应结果
response.text文本形式的响应内容

八、自动化测试脚本
1、获取验证码接口和登录接口(script-test01和test02)
2、新增合同业务流程(scrpt-test03)
3、接口的封装(api)
4、单接口测试
5、单接口测试时数据驱动的实现
九、Python的难点
1、类属性和对象属性

class MyClass:
    class_attribute = "This is a class attribute"  # 定义一个类属性

    def __init__(self, value):
        self.instance_attribute = value  # 定义一个对象属性

2、类属性和实例属性在类方法中的调用

类属性:Myclass.class_attribute

对象属性:self.instance_attribute
 

3、类对象和类实例对象的创建
  • self.login_api = LoginAPI() 是将一个 LoginAPI 的实例赋值给一个类的实例属性,这个属性属于类的每个实例,并且可以在类的任何方法中使用。

  • login_api = LoginAPI() 是将一个 LoginAPI 的实例赋值给一个局部变量,这个变量只在定义它的作用域内有效。

  • 将一个类的方法在另一个类中调用的步骤:1、在另一个中创建第一个类的实例2、通过实例调用方法:

    • 类和方法:FirstClass(first_method),SecondClass

    • class SecondClass:
          def __init__(self):
              # 步骤3: 在第二个类中创建第一个类的实例
              self.first_class_instance = FirstClass()

          def call_first_method(self):
              # 步骤4: 通过实例调用方法
              result = self.first_class_instance.first_method()
              return result

  • 在一个类的方法中调用这个类属性的操作:

    • Myclass.uuid


http://www.kler.cn/news/340613.html

相关文章:

  • k8s的pod的管理
  • MySQL(SQLite3)数据库+Flask框架+HTML搭建个人博客网站
  • 【小沐学GIS】blender导入OpenTopography地形数据(BlenderGIS、OSM、Python)
  • 2024.10.9 QT事件
  • 科创集团所属园区入驻企业北京铭镓半导体获 “硬科技”潜在独角兽企业认定
  • Matlab线条设置
  • 提示工程、微调和 RAG
  • 【ROS2】geometry_msgs::msg::Twist和sensor_msgs::msg::Joy
  • ssm智能社区管理系统的设计与实现
  • Vue 3 中实现懒加载功能
  • 2020年华为杯数学建模竞赛C题论文和代码
  • 树结构Tree
  • 数据结构——排序(交换排序)
  • LabVIEW激光诱导击穿光谱识别与分析系统
  • Scrum实战中遇到的问题与解决方法
  • 算法工程师重生之第二十四天(买卖股票的最佳时机II 跳跃游戏 跳跃游戏II K次取反后最大化的数组和 )
  • 【C语言系统编程】【第一部分:操作系统知识】1.3.实践与案例分析
  • 5G NR BWP 简介
  • Linux——磁盘分区、挂载
  • 基于深度学习的手术中的增强现实导航