接口自动化测试-项目实战

什么是接口自动化测试:使用工具或代码代替人对接口进行测试

测试项目结构(python包)

1、接口api包  2、script:业务脚本  3、data:数据  4、config.py :配置文件  5、reporter:报告

错误问题:

1、未打印任何东西。添加pip install pytest

2、setup,teardown的问题

关于pytest使用setUp/tearDown提示错误: AttributeError: ‘TestLogin‘ object has no attribute ‘login_api‘_attributeerror: 'testlogin' object has no attribut-CSDN博客

3、合同新增业务

  1. 封装接口类
  2. 获取验证码接口
  3. 获取验证码中的uuid,传递给data
  4. 登录接口(登录接口类的实现,实例化对象,调用登录接口类实现用户登录,(!!data参数中关于uuid的部分)
  5. 实现课程添加接口对象的封装和调用(如何实现课程添加接口对登录接口的依赖)
  6. 上传合同(上传合同接口的实现,实例化对象,调用实现合同上传(!!:文件如何上传))
  7. 新增合同(新增合同接口的实现,实例化对象,调用接口实现合同新增)

4、登录单接口实现

  • pytest的使用,setup(前置),teardown(后置)
  • pytest与unitest的对比Python 自动化测试框架unittest与pytest的区别_python pytest unittest 区别-CSDN博客
  • setup:登录接口实例化,验证码的获取,json数据中uuid的获取
  • 断言方法的掌握
        assert 200 == response.status_code
        assert "错误" in  response.text
        assert  500 == response.json().get('code')
  • 错误调试
 response = self.loginapi.post_login(test_data)

  • 测试数据参数化:导包,准备数据文件,在测试方法上面引用数据文件
import pytest
test_data =[
    ('admin', 'HM_2023_test', 200, '成功', 200),
    (" ", '123456',200,"失败", 500),
    ("jack666","123456",200,'错误',500),
]

 @pytest.mark.parametrize("username,password,status,message,code",test_data)
 def test01_login_success(self,username,password,status,message,code):
        test_data = {

            "username": username,
            "password": password,
            "code": "2",
            # 获得uuid的方法
            "uuid":TestLoginAPI.uuid
        }
        response = self.loginapi.post_login(test_data)
        assert status == response.status_code
        assert message in  response.text
        assert code ==response.json().get('code')
  • 数据驱动:以测试数据驱动脚本执行,维护焦点从脚本转向测试数据文件。导包import json->读取json文件,并保存为元组->测试数据驱动脚本执行

使用allure生成在线报告:

安装:
1.https://github.com/allure-framework/allure2/releases 下载 allure

2.解压缩安装包到一个不包含中文路径的目录

3.将压缩包内的 bin 目录配置到 path 系统环境变量

4.右键我的电脑-属性-高级设置-环境变量-找到系统环境变量的path项-增加 allure到bin目录

5.在命令行中输入 allure -version 命令,能显示allure版本信息,即为成功

6.在终端执行:pipinstall allure-pytest

7.在pycharm中下方控制台输入:1.pytest;2.运行allure命令生成测试报告 pytest allure serve report

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/761561.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈定时器之JSR223 定时器

浅谈定时器之JSR223 定时器 JSR223 定时器作为JMeter提供的众多定时器之一,以其高度的灵活性和可编程性脱颖而出,允许用户通过脚本自定义延时逻辑。本文将详细介绍JSR223定时器的特性和使用方法。 JSR223 定时器简介 JSR223 定时器利用了Java平台的JS…

家政小程序的开发,带动市场快速发展,提高家政服务质量

当下生活水平逐渐提高,也增加了年轻人的工作压力,同时老龄化也在日益增加,使得大众对家政的需求日益提高,能力、服务质量高的家政人员能够有效提高大众的生活幸福指数。 但是,传统的家政服务模式存在着效率低、用户与…

Unity 解包工具(AssetStudio/UtinyRipper)

文章目录 1.UtinyRipper2.AssetStudio 1.UtinyRipper 官方地址: https://github.com/mafaca/UtinyRipper/ 下载步骤: 2.AssetStudio 官方地址: https://github.com/Perfare/AssetStudio 下载步骤:

2024百元蓝牙耳机哪个好?2024性价比最高的蓝牙耳机推荐

2024想要在百元左右找到一款好用的性价比高的蓝牙耳机,确实是个不小的挑战。市场上各种耳机品牌和型号琳琅满目,各有各的特点。你可能会疑惑,如何才能在预算内挑选到一款性价比高、音质好的耳机呢?这篇文章将为你提供一些选购百元…

【SpringBoot Web框架实战教程】06 SpringBoot 整合 Druid

不积跬步,无以至千里;不积小流,无以成江海。大家好,我是闲鹤,微信:xxh_1459,十多年开发、架构经验,先后在华为、迅雷服役过,也在高校从事教学3年;目前已创业了…

【Mac】王国保卫战:起源 for mac(塔防策略游戏)游戏介绍和安装教程

游戏介绍 《王国保卫战:起源》(Kingdom: Origins)是一款策略塔防游戏,其核心玩法融合了塔防、策略管理和资源管理元素。游戏的主要目标是在一个开放的像素化世界中建立和管理自己的王国,并抵御夜晚来袭的怪物入侵。 …

华为仓颉语言体验:一个简单的socket服务端实现

前言 由于仓颉目前是内测状态, 不能展示仓颉的详细信息,但是华为仓颉官网的公共文档的内容是可以公开的。 我相信有不少喜欢编程的朋友都申请了内测,但是一些编程初学者应该和我一样,处于摸索阶段。所以,我这里把我测…

如果对方没做幂等!记一次生产订单重复的反思

最近公司公司的旧系统中发现了一个bug。业务部门反馈,尽管用户只支付了一年的服务费用,系统却将有效期增加了两年。 原因分析: 到底是什么原因呢? 经过日志分析,发现消息队列(MQ)向第三方服务发…

想用AI高端算力训练模型?试试英智BayStone平台

随着生成式人工智能的迅猛增长,各大公司纷纷推出强大的 AI产品以提升自身核心竞争力,对于依赖基础模型进行推理训练,同时需要高级基础设施的人工智能初创企业,急需使用高端智算算力来加速模型训练与产品研发创新。 算力是否充足&…

HiBit Uninstaller:软件批量卸载,一触即得

名人说:莫道谗言如浪深,莫言迁客似沙沉。 ——刘禹锡《浪淘沙》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、软件介绍1、HiBit Uninstaller2、核心功能 二、下载安装1、下载2、安装 …

【Sklearn-驯化】一文从基础帮你搞懂svm算法做分类和回归的原理以及实践

【Sklearn-驯化】一文从基础帮你搞懂svm算法做分类和回归的原理以及实践 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文…

【运维】如何在Ubuntu中设置一个内存守护进程来确保内存不会溢出

文章目录 前言增加守护进程1. 编写监控脚本2. 创建 systemd 服务文件3. 启动并启用服务4. 验证服务是否运行注意事项 如何修改守护进程1. 修改监控脚本2. 重新加载并重启服务3. 验证服务是否运行总结 如何设置一个日志文件来查看信息1. 修改监控脚本以记录日志方法一&#xff1…

antd DatePicker日期选择框限制最多选择一年

实现效果 实现逻辑 import React, { useState } from react;const ParentComponent () > {const [dates, setDates] useState(null);const disabledDate (current) > {if (!dates) {return false;}const tooLate dates[0] && current.diff(dates[0], days) &…

危险!属性拷贝工具的坑!

1. 背景​ 之前在专栏中讲过“不推荐使用属性拷贝工具”,推荐直接定义转换类和方法使用 IDEA 插件自动填充 get / set 函数。 不推荐的主要理由是: 有些属性拷贝工具性能有点差有些属性拷贝工具有“BUG”使用属性拷贝工具容易存在一些隐患&#xff08…

【你也能从零基础学会网站开发】(了解)关系型数据库的基本架构体系结构与概念理解

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 关系型数据库的…

安装 Docker 环境(通过云平台创建一个实例实现)

目录 1. 删除原有 yum 2. 手动配置 yum 源 3. 删除防火墙规则 4. 保存防火墙配置 5. 修改系统内核。打开内核转发功能。 6. 安装 Docker 7. 设置本地镜像仓库 8.重启服务 1. 删除原有 yum rm -rfv /etc/yum.repos.d/* 2. 手动配置 yum 源 使用 centos7-1511.iso 和 Xi…

Bunny的PT+SFT训练

GitHub - BAAI-DCAI/Bunny: A family of lightweight multimodal models.A family of lightweight multimodal models. . Contribute to BAAI-DCAI/Bunny development by creating an account on GitHub.https://github.com/BAAI-DCAI/Bunny1.环境安装 conda create -n bunny …

HEC-HMS水文模型教程

原文链接:HEC-HMS水文模型教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247607904&idx5&sn1a210328a3fc8f941b433674d8fe2c85&chksmfa826787cdf5ee91d01b6981ebd89deac3e350d747d0fec45ce2ef75d7cb8009341c6f55114d&token90645021…

桥感应加热主电路拓扑结构及控制原

1 桥感应加热主电路拓扑结构及控制原理 1.1 主电路拓扑 本文所述中频感应加热电源采用交—直—交的变频原理,三相50Hz的正弦交流输入电压经过整流滤波为540V平滑直流电压,再经逆变器将直流电压变成不同频率的交流电压供负载使用。本文采用半桥串联谐振…

PDF 生成(5)— 内容页支持由多页面组成

当学习成为了习惯,知识也就变成了常识。 感谢各位的 关注、点赞、收藏和评论。 新视频和文章会第一时间在微信公众号发送,欢迎关注:李永宁lyn 文章已收录到 github 仓库 liyongning/blog,欢迎 Watch 和 Star。 回顾 在本篇开始…