超细整理,接口自动化测试-DDT参数化驱动实战,一招打通...

news2024/11/22 17:43:01

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

ddt说明

一般进行接口测试时,每个接口的传参都不止一种情况,一般会考虑正向、逆向等多种组合。所以在测试一个接口时通常会编写多条case,而这些case除了传参不同外,其实并没什么区别。

这个时候就可以利用ddt来管理测试数据,提高代码复用率。

四种模式:
第一步引入的装饰器@ddt;
导入数据的@data;
拆分数据的@unpack;
导入外部数据的@file_data

使用案例

案例1:

#一定要和单元测试框架一起用
import unittest,os
from ddt import ddt,data,unpack,file_data
 
'''NO.1单组元素'''
@ddt
class Testwork(unittest.TestCase):
     
    @data(1,2,3)
    def test_01(self,value):      #value用来接收data的数据
        print(value)
if __name__ == '__main__':
    unittest.main()

返回结果:

B1

案例2:

# 一定要和单元测试框架一起用
import unittest, os
from ddt import ddt, data, unpack, file_data
 
 
 
'''NO.2多组未分解元素'''
@ddt
class Testwork(unittest.TestCase):
 
    @data((1, 2, 3), (4, 5, 6))
    @unpack
    def test_01(self, value1,value2,value3):  # value用来接收data的数据
        print(value1,value2,value3)
 
 
 
if __name__ == '__main__':
    unittest.main()

返回结果:

B2

案例3:

# 一定要和单元测试框架一起用
import unittest, os
from ddt import ddt, data, unpack, file_data
 
# '''NO.3多组字典元素分解'''
@ddt
class Testwork1(unittest.TestCase):
 
    @data([{'name':'lili','age':12},{'sex':'male','job':'teacher'}])
    @unpack
    def test_01(self,a,b):
        print(a)
        print(b)
 
if __name__ == '__main__':
    unittest.main()

返回结果:

B3

unitest+ddt+excel参数实例

B4

代码:

import unittest
import requests
import ddt
 
 
import xlrd
 
def get_data(file_name):
    a=[] #定义一个空的list
    book=xlrd.open_workbook(file_name) #打开一个excel文件
    sheet=book.sheet_by_index(0) #选择第一个sheet页
    for i in range(1,sheet.nrows):
        a.append(list(sheet.row_values(i,0,sheet.ncols))) #像a空列表添加list数据,0-到sheet.ncols列
    return a
result = get_data('./Parameterization.xlsx')
 
token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImFjY291bnQiOiJ7XCJjbGllbnRcIjpcIjIxNTBkZGI5ZDEyNTgxODhcIixcInNpZFwiOlwiZ2phUXZmbVZydjhlZmdpNEQ0TXY0bEE2YUE4Vlh1RUNcIixcImFjY291bnRJZFwiOjE5NDY0LFwiZW1haWxcIjpcInVjcjE1MEAxNjMuY29tXCJ9In0sImlhdCI6MTY3MDIxMjUwNywiZXhwIjoxNjc1Mzk2NTA3fQ.WKmi0ZhwZgE4sE-jWM4tu7EMaoJbiHCCmSDLH6KBLDA"
 
def diy_list(sku,goodsType):
    """【DIY】-case1获取自己的DIY列表"""
 
    headers = {
        'Authorization': 'Bearer ' + token,
        'clientId': 'b1d157a38a6367be',
        'appversion': '5.4'
    }
    params={
        "sku":sku,
        "goodsType":int(goodsType)
    }
    response = requests.get(f"https://xxx-app2.govee.com/appsku/v1/diys/diy-modes"
                          , headers=headers,params=params, verify=False)
    print(response.text)
    return response
 
 
@ddt.ddt
class test_diy(unittest.TestCase):
    '''NO.1单组元素'''
    @ddt.data(*result)
    @ddt.unpack
    # 进行参数化
    def test_01(self, sku, goodsType):
        '''获取当前设备的模块展示'''
        result=diy_list(sku,goodsType)
        res=result.json()
        assert res['status']==200
 
 
if __name__ == '__main__':
    # 通过verbosity=2 查看详细内容
    unittest.main(verbosity=2)

返回结果:

B5

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有付出百倍努力,才能收获千倍的成就;只有勇敢地闯过风雨,才能迎来辉煌的阳光;只要坚持不懈,成功的道路就在脚下。奋斗吧,你一定能成为自己想成为的人!

只有拼尽全力,才能超越自我,迎接更广阔的世界;只有燃起内心的激情,才能驱散困难与挫折;让努力成为你最强大的武器,奋斗成就辉煌人生!

只有坚持不懈的努力,才能驱散困境的阴霾;只有勇往直前的拼搏,才能攀登成功的高峰;只有敢于追求梦想,才能创造辉煌的人生。奋斗吧,你会成为自己的光芒!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL数据库——索引练习

一、练习题目 1、建立一个utf8编码的数据库test1 2、建立商品表goods和栏目表category(要求:按如下表结构创建表,并且存储引擎engine myisam 字符集charset utf8) 3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click…

JMeter中如何实现接口之间的关联?

关联是Jmeter工具中非常重要的一个技术。因为在测试过程过有些数据是经常发生变化的,要获取并使用这些数据,就要使用关联。 比如:用户登录后,session信息都不同,有些操作要使用session,就需要将这个动态的…

【国产复旦微FMQL45教程】-Procise应用流程

本教程采用 FMQL7045 FPGA开发板来完成整个试验,板卡照片如下: 具有丰富的接口资源,系统框图如下: 本教程用于完成基于Vivado的FMQL45的LED实验,目标是能够将这款开发板PL端先跑起来。 2 Procise工程建立 &#xff0…

AI绘画在线生成!推荐这个国产Midjourney平替

AI技术越来越成熟,不仅能生成文本,还能绘画。AI绘画软件层出不穷,很多人接触的是Midjourney。我之前也用过Midjourney,确实在作品精确度、图像细节等方面很出色。但用Midjourney需要有良好的网络,而且必须得是会员。 因…

Mysql常用存储引擎------MyISAM存储引擎

文章目录 一、MyISAM存储引擎1、1加锁与并发2、1修复3、1索引特性3、4 延迟更新索引键3、5 MyISAM 压缩表3、6 MyISAM 性能 二、MySQL 存储引擎 MyISAM 与 InnoDB 如何选择?一、InnoDB支持事务,MyISAM不支持,这一点是非常重要。事务是一种高级…

【嵌入式Qt开发入门】Qt如何网络编程——建立TCP通信服务端(附项目代码)

TCP 简介 TCP 协议(Transmission Control Protocol)全称是传输控制协议是一种面向连接的、可靠的、 基于字节流的传输层通信协议。 TCP 通信必须先建立 TCP 连接,通信端分为客户端和服务端。服务端通过监听某个端口来监听是否有客户端连接到来…

7.kafka+ELK连接

文章目录 kafkaELK连接部署Kafkakafka操作命令kafka架构深入FilebeatKafkaELK连接 kafkaELK连接 部署Kafka ###关闭防火墙systemctl stop firewalld systemctl disable firewalldsetenforce 0vim /etc/selinux/configSELINUXdisabled###下载安装包官方下载地址:ht…

python散记

"""字符串格式化的两种方法"""name"sans" age18 math_score90.56 english_score88.8print(f"这个学生的名字叫{name},年龄{age},数学分数是{math_score},总分是{math_scoreenglish_score}") print("这个学生的名字叫%s…

APP开发的未来:虚拟现实和增强现实的角色

移动应用程序越来越多地在我们的日常生活中发挥着重要作用。但是,随着技术的不断发展,未来的 APP开发会有什么新的发展方向呢?这是每个人都在关心的问题。在过去的几年中,移动应用程序领域发生了巨大变化。像 VR/AR这样的技术为人…

第63讲:Python编程案例之猴子吃桃

文章目录 1.需求描述以及分析2.递推方式实该该程序3.递归方式实现该程序 1.需求描述以及分析 需求描述: 猴子第一天摘了若干个桃子,第一天吃了若干个桃子中的一半,觉得不过瘾,又多吃了一个。 第二天早上又将第一天剩下的桃子吃…

Spring 项目创建和使用2 (Bean对象的存取)

目录 一、创建 Bean 对象 二、将Bean对象存储到 Spring容器中 三、创建 Spring 上下文(得到一个Spring容器) 1. 通过在启动类中 ApplicationContext 获取一个 Spring容器 2. 通过在启动类种使用 BeanFactory 的方式来得到 Spring 对象 (此…

MAYA粒子目标goalV和goalU详细应用

一下就填充到点 一个一个点填充 nParticleShape1.goalV0.5; nParticleShape1.goalU0.5; 粒子向中心移动 V方向使用渐变 删除U方向表达式 也使用渐变 使用圆角 nParticleShape1.goalUrand(0,1); nParticleShape1.goalUnParticleShape1.goalU0.02; nParticleShape1.goalUnPartic…

Excel-公式VLOOKUP 使用方法-小记

个人愚见 表示 MongoDB列中的任意一条数据 在 MySQL列 精确查找 和MongoDB列 中一模一样的数据,有的话返回MongoDB列数据,没有话返回#N/A 官方解释

redis 三种缓存更新策略

今天聊聊redis 三种缓存更新策略分别是: Cache Aside(旁路缓存)策略; Read/Write Through(读穿 / 写穿)策略; Write Back(写回)策略; 其中 Cache Aside策略…

php通过IP获取用户当前所在城市

php获取当前用户所在城市 php通过ip免申请api获取所在城市的代码包括省市区sql数据 <?php function getName($pinyin,$lv){$servername "localhost";$username "root";$password "root";$dbname "ttx";try {$conn new PDO(…

Blazor前后端框架Known-V1.2.4

V1.2.4 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 Gitee&#xff1a; https://gitee.com/known/KnownGithub&#xff1a;https://github.com/known/Known 概述 基于C#和Blazor…

一款开源的Hitomi-Downloader视频下载工具,几乎支持所有主流视频网站

一款开源的Hitomi-Downloader视频下载工具&#xff0c;几乎支持所有主流视频网站 用过IDM的朋友可能知道IDM有个强大的功能就是可以嗅探网站各种视频、音频等资源&#xff0c;然后提供快捷下载&#xff0c;可不巧的是IDM是收费软件。对于不愿意付费购买IDM的朋友&#xff0c;能…

AssetBundle.Unload(true)无法卸载图集

1&#xff09;AssetBundle.Unload(true)无法卸载图集 ​2&#xff09;关于Unity 2D游戏地图预加载的问题 3&#xff09;Addressables能否支持某些资源不打Bundle直接加载源文件 这是第342篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热门话题&#xff0c;涵盖了UWA问答…

如何在CSDN博客平台上吸引铁粉

&#x1f3c6;荣誉认证&#xff1a;51CTO博客专家博主、TOP红人、明日之星&#xff1b;阿里云开发者社区专家博主、技术博主、星级博主。 &#x1f4bb;微信公众号&#xff1a;微笑的段嘉许 &#x1f4cc;本文由微笑的段嘉许原创&#xff01; &#x1f389;欢迎关注&#x1f5…

照片文件大小怎么修改为200k?图片压缩怎么指定大小?

日常生活和工作中&#xff0c;经常用到图片&#xff0c;但是有时候需要将图片压缩指定大小来符合各种规定&#xff0c;比如图片压缩到200kb&#xff0c;那么有没有简单方便的图片压缩&#xff08; https://www.yasuotu.com/imagesize&#xff09;的方法呢&#xff1f;下面就拿压…