【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码

这篇具有很好参考价值的文章主要介绍了【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时200+小时精选的「软件测试」资料包
  • 📢 最困难的时候,也就是我们离成功不远的时候!

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试

theme: fancy
highlight: arta

项目介绍

接口自动化测试项目2.0

软件架构

本框架主要是基于 Python + unittest + ddt + HTMLTestRunner + log + excel + mysql + 企业微信通知 + Jenkins 实现的接口自动化框架。

前言

公司突然要求你做自动化,但是没有代码基础不知道怎么做?或者有自动化基础,但是不知道如何系统性的做自动化,
放在 excel 文件中维护,不知道如何处理多业务依赖的逻辑,又或者你想想postman一样可以给每一条测试用例编写一些代码来处理脚本,但是又不知道怎么做。
那么 gitee 中勇哥的自动化测试框架,将为你解决这些问题。

框架优势

本框架不收取汾河费用,其优势在于测试人员直接编写测试用例,运行一个测试文件就可以自动执行所有测试用例。

框架主要使用 python 语言编写,结合 unittest 进行二次开发,用户仅需要在 excel 文件中编写测试用例,
编写成功之后,会自动生成测试用例的代码,零基础代码小白,也可以操作。

本框架支持多环境切换,多业务接口依赖,mysql 数据库断言和 接口响应断言,并且用例直接在 excel 文件中维护,无需编写业务代码,
本框架支持动态脚本函数扩展,可以随时内部预置函数,或者增加动态脚本,通过固定格式写法 {{fun()}} 动态调用
接口 unittest 框架生成 HTML 报告及 excel 用例执行报告,并且发送 企业微信通知/ 钉钉通知/ 邮箱通知/ 飞书通知,灵活配置。

实现功能

测试数据隔离, 实现数据驱动。
支持多套环境使用,比如测试用例相同,但是环境不同,只需在 excel 中启用需要执行的环境即可。
支持多接口数据依赖: 如A接口需要同时依赖 B、C 接口的响应数据作为参数,或者 c 接口断言需要动态使用A接口的入参作为预期结果。
数据库断言: 直接在测试用例中写入查询的 sql 即可断言,无需编写代码。
动态多断言: 如接口需要同时校验响应数据和 sql 校验,支持多场景断言。
支持自定义脚本代码(python语言),可以让你像 postman 一样给每一条测试用例编写任意前后置脚本代码,内置了 action
对象操作及一些方法可以很便捷的处理前置或后置脚本。
自动生成用例代码: 测试人员在 excel 文件中填写好测试用例, 程序可以直接生成用例代码,纯小白也能使用。
支持自定义拓展函数: 如用例中需要使用自己实现的函数,可以随时在指定的目录下面写上函数,通过 {{func(*args,**kwargs)}}
随时调用你自己设置的函数。
内置实现了一部分随意函数及自定义常用函数:如:随机字符串、任意日期时间、随机gps、随机用户身份证、地址、邮箱、企业信息等等,用户还可以自己定义任意函数,无门槛使用。
统计接口的运行时长: 拓展功能,订制开关,可以决定是否需要使用。
支持用例定时器运行,比如:B用例执行前需要A用例执行后等待5秒才开始执行,可以随意加上等待时间。
日志模块: 打印每个接口的日志信息,同样订制了开关,可以决定是否需要打印日志。
钉钉、企业微信通知、邮件通知: 支持多种通知场景,执行成功之后,可选择发送钉钉、或者企业微信、邮箱通知。
封装了发送MQTT的类,支持发送MQTT消息。
支持导入postman或者swargs导出的json文件自动处理成测试用例,然后修改一下参数即可使用。

gitee 地址

接口自动化框架地址:关注文末公众号自取

遇到问题

请仔细阅读文档,文档中几乎可以帮你避免所有的问题

目录概览:

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试

详细目录结构

.
└── cases/ // 测试用例数据文件夹
    └── cases/ // 测试用例
        └── test_cases.xlsx
    └── templates/ // 测试用例模板
        └── template.xlsx
    └── temporary_file/ // swagger| postman 导出的 json文件存放位置
        └── openapi.json
        └── postman.json
└── common/ // 配置及核心功能代码
    └── bif_functions/ // 内置函数工具
        └── __init__.py
        └── bif_datetime.py // 内置日期时间函数
        └── bif_hashlib.py // 内置hash 函数
        └── bif_json.py // 内置json解析函数
        └── bif_list.py // 内置列表操作函数
        └── bif_random.py // 内置随机函数
        └── bif_re.py // 内置正则函数
        └── bif_str.py // 内置字符串函数
        └── bif_time.py // 内置时间函数
        └── random_tools.py // 内置其他随机函数
    └── crypto/ // 加密工具
        └── __init__.py
        └── encrypt_data.py // 执行数据加密封装入口
        └── encryption_aes.py // aes 加密
        └── encryption_base64_to_image.py // base64 转图片工具
        └── encryption_main.py // 执行加入函数入口,对应excel中的加密方法选项,结合 extensions 中的 sign 可自定义加密规则
        └── encryption_rsa.py // rsa 加密
        └── encryption_str.py // 常用的字符串加密工具函数
    └── data_extraction/ // 数据提取器
        └── __init__.py
        └── analysis_json.py // json 字典分析函数,类似 jsonpath
        └── assert_dict.py // 旧断言字段函数 (暂时舍弃)
        └── data_extractor.py // 数据提取函数
        └── dependent_parameter.py // 数据替换函数
        └── dict_get.py // 旧路径提取函数
    └── database/ // 数据库操作工具
        └── __init__.py
        └── execute_sql_files.py // sql 批处理工具
        └── mongodb_client.py // mongoDB 操作工具
        └── mysql_client.py // mysql 操作工具
        └── psycopg_client.py // presto 操作工具      
        └── redis_client.py // redis 操作工具
    └── file_handling/ // 文件操作
        └── __init__.py
        └── do_excel.py // excel 处理
        └── excel.py // excel 处理
        └── file_utils.py // json、yarm等文件操作以及一些目录操作
    └── http_client/ // http_client 发送http的工具
        └── __init__.py
        └── http_client.py // http 请求封装
    └── MQclient/ // MQ 工具
        └── __init__.py
        └── mqtt_client.py // mqtt 工具
        └── rabbit_mq_client.py // rmq 工具
    └── random_tools/ // 常用随机数工具包
        └── credit_cards/ // 随机银行卡
            └── __init__.py
            └── bankcard.py
            └── cardbin.csv
        └── credit_identifiers/ // 随机企业唯一信用代码
            └── __init__.py
            └── address.json
            └── credit_identifier.py
            └── unified_social_credit_identifier.py
        └── emails/ // 随机邮箱
            └── __init__.py
            └── email.py
            └── free_email.csv
        └── identification/ // 随机身份证
            └── __init__.py
            └── area.csv
            └── id_card.py
        └── names/ // 随机姓名
            └── __init__.py
            └── first_name_boy.csv
            └── first_name_girl.csv
            └── last_name.csv
            └── name.py
        └── phone_numbers/ // 随机手机号
            └── __init__.py
            └── phone.py
            └── phone_area.csv
            └── __init__.py
    └── utils/ // 工具包
        └── __init__.py
        └── captcha.py // 识别图片转字符串,常用于验证码登录
        └── load_and_execute_script.py // 动态加载自定义python文件工具
        └── logger.py // loggin 日志封装
        └── mylogger.py // loguru 日志封装
        └── parsing_openapi.py // 解析 swagger 文件 转测试用例
        └── parsing_postman.py // 解析 postman 文件 转测试用例
        └── singleton.py // 单例
        └── WxworkSms.py // 企业微信
    └── validation/ // 断言及加载动条函数工具包
        └── __init__.py
        └── comparator_dict.py // 自定义比较器名词释义
        └── comparators.py // 自定义比较器
        └── extractor.py // 提取器
        └── load_modules_from_folder.py // 动态从模块中加载函数
        └── loaders.py // 动态加载函数及加载内置比较器等工具包
    └── validator.py // 断言校验器
        └── __init__.py
    └── action.py // 核心类
    └── config.py // 配置文件
    └── variables.py // 数据操作类
└── extensions/ // 动态扩展模块目录
    └── __init__.py
    └── ext_method_online.py // 动态扩展方法模块
    └── sign.py // 加签模块
└── image/
    └── wx.jpg
    └── zfb.jpg
└── OutPut/ // 日志报错
    └── log/
        └── 2023-06-25.log
        └── 2023-07-04.log
        └── 2023-07-05.log
    └── reports/
        └── history.json
└── scripts/ // 动态脚本目录
    └── __init__.py
        └── prepost_script_安全纯净大屏_2.py // 对应每条测试用例的前后置脚本(可选)
        └── request_script_sheetname_id.py
└── test_script/ // 测试脚本核心模块
    └── __init__.py
    └── test_api.py
└── directory_tree.txt                      
└── excel_converter.py // postman、swagger 文件转换主入口模块
└── generate_tree.py // 项目目录树模块
└── main_personal_information.py // 随机个人信息核心入口
└── pipenv_command.text             
└── Pipfile     
└── Pipfile.lock    
└── README.md
└── run.py // 自动化测试执行入口模块
 

安装教程

依赖库

参考 pipenv --Pipfile 虚拟环境文件,不一一列出

首先,执行本框架之后,需要搭建好 python 环境,python 环境搭建自行百度

安装 pipenv环境: pip install pipenv
创建虚拟环境: pipenv install
如果有个别包无法安装,则:pipenv shell 进入环境后,再pipenv install XX包

使用说明

测试用例只需要在 cases/cases/xxx.xlsx 文件填写测试用例即可,可以参考测试用例模板文件,由于模板文件的用例已经做了敏感信息处理,所以执行执行模板的用例应该会报错
运行用例可以直接进入到 test_script/test_xxx.py 中,执行test_xxx.py文件,也可以直接运训 最外层的 run.py文件,
Personalinformation.py 这个文件是用来生成一些测试数据,方便做功能测试或者其他一般性测试使用

开放测试接口文档
大家可以使用开源接口中的登录、个人信息、收藏(新增、查看、修改、删除)等功能,编写接口自动化案例,然后测试程序脚本
下方是接口文档地址,大家可以自行查看(因为开源的接口,里面有些逻辑性的功能,如修改被删除的网址接口并没有过多的做判断,
因此用例中只写了一些基础的场景,仅供大家参考。)

如何创建用例

excel中的测试用例相关字段介绍
下面是一个关于一个用例中的所有字段,字段不是全部必填

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
下面对每一个字段的作用,做出解释:

Id:测试用例的id,唯一,必填
Name: 测试用例的名称,必填
Description: 测试用例描述,可选,建议填写,生成的报告会用到这个字段
Run: 是否运行这条用例,如果不填或填写的不是YES/yes,则不运行这条用例
Time: 定时器,数字,非必填,填写则会等待多少秒后运行这条用例
Method: 请求方法,支持所有的http请求方法,get/post/put/patch 等等
Url: 接口路径或者整个请求地址,如果不带域名,则会自动去init表中拼接host上去,Url中可以参数化,如:
/test/api/get/{{id}}/{{func(*args,**kwargs)}}
Headers: 请求头,字典填写方式,如:{“Content-Type”:“application/json”,“token”:“{{token}}”,‘time’:‘{{timestamp()}}’}
Headers Crypto: 请求头是否加密,可以自定义加密方式,然后这里输入你的加密方法名即可,如 MD5\sha1 等
Query Str: 查询字符串参数,也就是URL过长的时候,可以将URL后面的参数拆出来填写在这里,字典的方式填写,支持参数化
Request Data Type: 请求参数类型,有 json,file,params,data 等等这几种
Request Data: 请求参数,字典形式填写,支持参数化,如:{“projectId”:“{{projectId}}”,“tvSequence”:“{{random_string()}}”}
Setup Script: 前置脚本,可以直接写 pthon 代码,比如类,函数,等等,如果是函数,类一定要调用才会执行。编写方式示例:

# 可以写类,可以写函数,可以直接普通python语句,
def setup(action):
	print("获取action示例的属性", action.get_vars())
	# 更新属性到action实例的属性中
	action.update_vars("999", "99999")
	print("获取所有的临时变量", action.get_variable())
	print("将变量存到临时变量表中以便后续用例{{key}}使用", action.update_variable("key", "value"))
	print("将函数存到临时变量表,以便后面调用{{setup_func()}}也可以", action.update_variable("setup_func", setup))
 
 
# 调用方法
setup(action)

Request Data Crypto: 请求参数是否加密,可以填写你需要的加密方式,如 MD5\sha1 等
Extract Request Data:提取请求参数的字段或整个请求参数字典,如:{“k”: “ . p r o j e c t I d " , " x " : " .projectId", "x": " .projectId","x":".data[0].age[3].a”}
Jsonpath: 提取响应结果的 jsonpath 表达式,示例:默认情况下若表达式结果只有一个值那么就存为字符串,如果表达式执行结果有多个值,那么就存为列表,表达式填写方式如下:
{“k”: “ . d a t a " , " x " : " .data", "x": " .data","x":".data[0].age[3].a”}
Regex: 正则表达式,填写正则表达式字符串,示例: r’“id”: (\d+), “name”: “(\w+)”,’
Regex Params List:填写一个列表(list),用来存正则表达式提取值的变量列表,如: [“a”, “b”],则表示用a,b 变量接收上面的正则表达式的返回值
Retrieve Value:python字典的取值方式,多条用分号间隔,如:name=data[0].name;ok=data[0].id;an=data[0].age[3].a
SQL:填写增删改查sql语句,字典的key是需要执行的sql方法,值是sql语句,可以填写多条,填写格式示例:

{
  "insert": {
    "insert_data": "INSERT INTO users (name, age, email) VALUES ('John', 25, 'john@example.com');"
  },
  "select": {
    "select_data": "SELECT name, age, email FROM users WHERE age > 20;"
  },
  "delete": {
    "delete_data": "DELETE FROM users WHERE age > 30;"
  },
  "update": {
    "update_data": "UPDATE users SET age = 26 WHERE name = 'John';"
  }
}

Sql Params Dict:提取sql的结果,同jsonpath,如:{“name”: “ . s e l e c t . s e l e c t d a t a . n a m e " , " a g e " : " .select.select_data.name", "age": " .select.selectdata.name","age":".select.select_data.age”}
Teardown Script: 后置python脚本代码,任意函数或者类,用例发送请求后会自动执行该代码
Expected:预期结果,写法示例:[{“check”:“result.user.name”,“comparator”:“eq”,“expect”:“chenyongzhi”}]
or {“check”:“result.user.name”,“comparator”:“eq”,“expect”:“chenyongzhi”},支持的断言比较方式有如下这些:

{
  "eq": "eq:实际值与期望值相等",
  "lt": "lt:实际值小于期望值",
  "lte": "lte:实际值小于或等于期望值",
  "gt": "gt:实际值大于期望值",
  "gte": "gte:实际值大于或等于期望值",
  "neq": "neq:实际值与期望值不相等",
  "str_eq": "str_eq:字符串实际值与期望值相同",
  "length_eq": "length_eq:实际值的长度等于期望长度",
  "length_gt": "length_gt:实际值的长度大于期望长度",
  "length_gte": "length_gte:实际值的长度大于或等于期望长度",
  "length_lt": "length_lt:实际值的长度小于期望长度",
  "length_lte": "length_lte:实际值的长度小于或等于期望长度",
  "contains": "contains:期望值包含在实际值中",
  "contained_by": "contained_by:实际值被包含在期望值中",
  "type_match": "type_match:实际值的类型与期望值的类型相匹配",
  "regex_match": "type_match:正则匹配(从字符串的起始位置匹配)",
  "regex_search": "regex_search:正则匹配(从字符串的任意位置匹配)",
  "startswith": "startswith:实际值是以期望值开始",
  "endswith": "endswith:实际值是以期望值结束"
}
  • Response: 响应结果,用例执行后,会自动将结果回写到这个excel中,查看测试结果,一目了然。

创建用例步骤
开始填写测试用例前,先看看这个init表的字段,下面我会统一讲解:

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
在 cases 文件夹下方创建被测模块或者系统,然后在系统下创建相关的 excel 用例(可以复制模板excel文件来填写测试用例)
将测试用例路径添加到 common 文件夹下的 config.py 文件中
进入 test_script/ 文件夹,在该文件夹下操作 test_api.py 文件将 test_file 变量地址替换为刚刚填写的测试用例地址
excel 中的用例必须填写用例 id,另外 init sheet 表照中的全局初始化数据字段 中的部分字段必须填写如:

"""
# init 表中的字段
id: 序号
environment: 被测环境,建议填写:如测试环境,开发环境,生产环境等等
host:域名地址,如:https://www.baidu.com,非必填,填写了就会取这部分的地址与测试用例中的Url拼接发送请求 
path:一小部分的请求路径,比如所有的接口可能都存在:/test/api 这种,就可以填写上去,非必填
databases: 数据库,非必填,{"host": "127.0.0.1","port": 3306,"database": "mysql","user":"root","password":"root@3306"}
sheets:你想执行的sheet是哪一个,全部执行就填写 'all',部分执行就填写具体的sheet如["第一个sheet的名称","第二个sheet的名称"...]
initialize_data:初始化的一些固定参数,比如登录账号,密码,等等都是基本不变的数据可以填写这里,属于全局变量,填写方式字典{"{{username}}":"1234","{{pwd}}":"密码"}
run: 决定使用的环境,值为yes表示用这个环境运行,有多个环境都填写yes,只运行第一个yes
"""

以上都填写完成,记得先关闭 excel,然后就可以单独执行 test_api.py 文件,或者直接运行 run.py主入口文件,生成HTML报告及excel测试报告

下面我们来看一下,如何创建用例

用例中相关字段的介绍

  • 下发截图为 init 初始化基础数据填写用例

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试

  • init 中 sheets 内的列表排序是有作用的,执行用例是按照列表内值排序执行的。
  • 下方截图就是 excel 用例 每个字段是否必填的描述

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
每条测试用例都可以自定义是否开启,开启则执行,不开启则跳过,默认执行结果是通过
每一个sheet都可以随意组合用例,不同sheet之间的变量参数可以共用(即变量全局的),不独立设计,主要是考虑到分sheet只是为了方面管理用例,但是执行依然是一次性全部执行
目前没有设计每一个sheet的最大用例条数,默认取excel最大数据量,如果发现最大数据量撑爆内存,建议分多个excel来写测试用例
目前使用的生成器的方式读取excel,主要是防止一次性内存被撑爆
测试报告是按照excel来生成的,测试报告的样式没有按模块区分,实际上直接打开excel就可以看到报告结果了。
其他一些没有多大作用的,通过率,跳过条数,通过条数,失败条数等,没有另外处理,全部由html的报告自动处理
下方截图为关联参数填写示例

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试

常用的一些内置函数

所有的内置函数都在 common/bif_functions 这个包内,用户可以自定义添加内置函数,设计内置函数一定要设计返回值,不能直接返回
None,貌似没有对 None 特殊处理
以下是一些内置函数讲解

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
这个MD5方法,一般都没有使用,一般都是直接excel中是否使用【参数加密方式字段开关】来处理加密

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
内置函数使用,统一是 {{xxx()}},可以传参数到()内,比如 {{token(999)}}

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试

  • 获取一些时间戳方法,可以带参数
  • Faker 库里面的有些随机数,需要更多自己添加就行了。
    【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
    用例中添加等待时间
    excel 字段中一个 Time,字段值设置为 数字,单位S

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
用例在执行前,需要单独执行 sql 或者执行后需要单独执行 sql,或者请求后立刻执行 sql 并断言 sql
excel 中有一个 method 字段,设置值为 sql 即可,后面的 SQL,SQL 变量字段按需填写即可,一定要符合规范填写
或者在请求的后面填写 sql 语句及 sql 变量,都会默认先执行 sql,再执行请求。

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
setup setupclass teardown tearDownClass ?
其实这套代码这些都可以不需要使用,也可以使用,定制一些初始化函数或者唯一登录这样用,做数据清晰操作?可以将sql写excel,
或者单独再excel种建立一个sheet来执行sql也是可行的,方法很多,很灵活

postman或者swagger的文件怎么快速转为测试用例?
本框架已经封装好了解析函数,直接将postman文件导出,放到指定目录
运行excel_converter.py文件,即可得到测试用例
非常快捷省事,不用一条一条复制粘贴

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
更换不同的数据库?
目前内置有多种数据库查链接方式,但是尚未使用起来,只是将mysql使用起来了,使用者如需要使用其他如 mongoDB 这类数据库,
可以按 mysql 设计的方式去扩展这个数据库以适应 excel测试用例编写方式,也可以联系作者处理

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
发送企业微信通知
可以根据需要,自由修改企业微信发送的模板等等信息

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
主函数执行入口

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
日志打印装饰器

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
日志打印结果示例:

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
基本数据

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
测试报告?
html 或者 excel 中 都有,直接自行使用查看吧

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
企业微信测试报告:

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
html测试报告:

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
统计用例运行时长?
统计了每条用例从请求发出到响应的时长,没有统计其他时常信息,具体可以从 html 中查看

其他
本框架为2.0升级版本,升级之后的功能,现在基本上都是在 excel 中维护用例,无需测试人员编写代码,
和 1.0版本的区别在于,1.0版本也不需要测试人员写代码,但是断言的方式比较生硬。
1.0版本已经集成到测试开发平台,可以去平台使用,具体gitee

独立个人信息工具介绍
直接执行 main_personal_information.py 文件就可以生成非常棒的测试数据
Python随机生成个人信息, 包括姓名、性别、年龄、出生日期、身份证号、银行卡号、电话、手机号、邮箱等信息。

生成随机个人信息

PS D:\api-test-project> python .\main_personal_information.py                                                                                                                                                                                                 海省广州市南
请输入你需要生成的数据总数:10
+--------+------+------+------------+--------------------+----------------------+--------------+-------------+-------------------------+----------------------------------------+--------------------+                                                        门特别行政区
| 用户名 | 性别 | 年龄 |    生日    |       身份证       |    银行卡或信用卡    |     座机     |    手机号   |           邮箱          |                  地址                  |  统一社会信用代码  |
+--------+------+------+------------+--------------------+----------------------+--------------+-------------+-------------------------+----------------------------------------+--------------------+                                                        西省张家港市
|  刘世  |  男  |  57  | 1965-07-21 | 342422196507219413 |  62263745016607204   | 0744-3715089 | 14705083324 |     liushi@tianya.cn    |    甘肃省辽阳县沙湾海口街y座 180548    | 713101514054645086 |
| 龙清承 |  男  |  56  | 1966-08-21 | 342400196608212132 | 62284150185529051643 | 0893-4423648 | 13487550352 | longqingcheng@tianya.cn |    辽宁省玉珍市黄浦重庆街z座 401247    | 93421303115117882W |
|  刘娴  |  女  |  37  | 1985-05-23 | 411023198505239964 | 6213058212589619696  | 0562-0004972 | 17303409666 |    liuxian@tianya.cn    |     福建省拉萨县朝阳胡街X座 479131     | 92341122605351081N |
|  朱晨  |  男  |  55  | 1967-10-08 | 142733196710082991 |  45128971703439970   | 0375-7394954 | 18024463495 |     zhuchen@139.com     | 宁夏回族自治区秀云县高坪任路Q座 544781 | 955205231604137955 |
| 许天有 |  男  |  51  | 1971-10-17 | 330901197110176212 |  62592648755593670   | 0973-8733227 | 13413236004 |     xutianyou@wo.cn     |    辽宁省天津市南长深圳路f座 952461    | 91120114649961877C |
|  陈锦  |  女  |  29  | 1993-02-12 | 452123199302128568 |  62260020819291645   | 0915-7410180 | 17509030433 |    chenjin@icloud.com   |    重庆市西安市沙湾广州街G座 531384    | 92445302298701343Q |
+--------+------+------+------------+--------------------+----------------------+--------------+-------------+-------------------------+----------------------------------------+--------------------+

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试

最后的分享

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试

如果你想学习自动化测试,那么下面这套视频应该会帮到你很多

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....

最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了!

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试
以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码,pytest,postman,测试工具,软件测试,功能测试,自动化测试文章来源地址https://www.toymoban.com/news/detail-773792.html

到了这里,关于【接口自动化测试项目2.0】unittest与pytest无缝穿插对接,可以像postman一样编写代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python自动化测试框架:Pytest和Unittest的区别

    pytest和unittest是Python中常用的两种测试框架,它们都可以用来编写和执行测试用例,但两者在很多方面都有所不同。本文将从不同的角度来论述这些区别,以帮助大家更好地理解pytest和unittest。 1. 原理 pytest是基于Python的assert语句和Python的自省特性实现测试框架,其原理是基于

    2024年02月10日
    浏览(63)
  • Python+Requests+Pytest+Excel+Allure 接口自动化测试项目实战【框架之间的对比】

            --------UnitTest框架和PyTest框架的简单认识对比与项目实战-------- 定义: Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。 Pytest是Python的另一个第三方单元测

    2024年02月09日
    浏览(58)
  • 接口测试 react+unittest+flask 接口自动化测试平台

    目录 1 前言 2 框架 2-1 框架简介 2-2 框架介绍 2-3 框架结构 3 平台 3-1 平台组件图

    2024年02月16日
    浏览(50)
  • Python接口自动化之unittest单元测试

    以下主要介绍unittest特性、运行流程及实际案例。 一、单元测试三连问 1、 什么是单元测试?   按照阶段来分,一般就是单元测试,集成测试,系统测试,验收测试。单元测试是对 单个模块 、 单个类 或者 单个函数 进行测试。 将访问接口的过程封装在函数里面; 接口测试就

    2024年02月07日
    浏览(51)
  • react+unittest+flask 接口自动化测试平台

    目录 1 前言 2 框架 2-1 框架简介 2-2 框架介绍 2-3 框架结构 3 平台 3-1 平台组件图 1 新建用例 2 生成测试任务 3 执行并查看测试报告

    2024年02月17日
    浏览(49)
  • 简单实现接口自动化测试(基于python+unittest)

    本文通过从Postman获取基本的接口测试Code简单的接口测试入手,一步步调整优化接口调用,以及增加基本的结果判断,讲解Python自带的Unittest框架调用,期望各位可以通过本文对接口自动化测试有一个大致的了解。 为什么要做接口自动化测试? 在当前互联网产品迭代频繁的背景

    2024年02月07日
    浏览(73)
  • python3+requests+unittest接口自动化测试

    python3 + pycharm编辑器 (该套代码只是简单入门,有兴趣的可以不断后期完善) (1)run.py主运行文件,运行之后可以生成相应的测试报告,并以邮件形式发送; (2)report文件夹存放测试结果报告; (3)unit_test文件夹是存放测试用例(demo.py和test_unittest.py用例用法介绍,实际

    2024年02月09日
    浏览(64)
  • 自动化测试(三):接口自动化pytest测试框架

    API:Application Programming Interface 接口自动化按照自动化的工具可分为 基于 接口测试工具 的接口自动化 eg1:Postman+Newman+git/Svn+Jenkins(基于Javascript语言)接口自动化 Postman :创建和发送 API 请求,并对响应进行断言和验证。 Newman : Postman 的命令行工具,它允许测试人员在没有界

    2024年02月10日
    浏览(65)
  • 接口自动化测试项目2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等

    接口自动化测试项目2.0 本框架主要是基于 Python + unittest + ddt + HTMLTestRunner + log + excel + mysql + 企业微信通知 + Jenkins 实现的接口自动化框架。 项目参与者: 陈勇志 技术支持邮箱: 262667641@qq.com 个人微信: Testing_player 个人博客地址: https://home.cnblogs.com/u/Nephalem-262667641 微信公众号:测

    2024年02月16日
    浏览(68)
  • 【Python+requests+unittest+excel】实现接口自动化测试框架

    一、框架结构:  工程目录 二、Case文件设计 三、基础包 base 3.1 封装get/post请求(runmethon.py) 3.2 封装mock(mock.py) 四、数据操作包 operation_data 4.1 获取excel单元格中的内容(get_data.py)   4.2 获取excel中每个列(data_config.py) 4.3 解决数据依赖(dependent.py ) 五、工具类包 to

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包