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

万江区仿做网站品牌策划公司介绍

万江区仿做网站,品牌策划公司介绍,服务器托管是啥,鹰潭网站商城建设PythonPytestAllureYaml接口自动化测试框架详解 编撰人:CesareCheung 更新时间:2024.06.20 一、技术栈 PythonPytestAllureYamlJenkinsGitLab 版本要求:Python3.7.0,Pytest7.4.4,Allure2.18.1,PyYaml6.0 二、环境配置 安装python3.7&…

Python+Pytest+Allure+Yaml接口自动化测试框架详解

编撰人:CesareCheung
更新时间:2024.06.20

一、技术栈

Python+Pytest+Allure+Yaml+Jenkins+GitLab
版本要求:Python3.7.0,Pytest7.4.4,Allure2.18.1,PyYaml6.0

二、环境配置

  1. 安装python3.7,并配置Pycharm运行环境为python3.7
  2. 安装allure并配置好环境变量
  3. 安装依赖包 pip install -r requirements.txt

三、自动化思路

通过请求方法封装及环境配置,用pytest框架运行读取testcase文件测试用例集,将参数传入对应test_*用例执行器汇总并执行输出allure测试报告
1)单个用例
2)多个用例
3)多用例上下游接口串联传参
4)用例执行(场景跑批)
5)测试报告
6)通知(邮件、企业微信)

四、项目结构:

在这里插入图片描述

框架目录详解

–common:公共方法包

--get_path.py:获取文件路径方法	
--logger_util.py:输出日志方法
--parameters_until.py:传参方式方法封装	
--requests_util.py:请求方式方法封装
--yaml_util.py:yaml文件读取写入方法

–config: 配置包

--config.yml:配置文件,主要为域名ip地址配置及日志输出级别--extract.yml:接口上下游串联时,用例文件做参数化截取返回值后自动输出保存到该文件

–data: 用于存放csv传参文件包(可用可不用,具体根据实际情况)

--get_token.csv:存放csv文件参数

–logs: 日志输出文件,会自动生成

–reports: 测试报告文件

–testcase: 测试用例文件集

	--fenmi:项目测试用例--login.yml:接口参数传参  # 如:-   name: 1、获取UUID#    base_url: https://XXXXX.combase_url: ${get_base_url(base_fenmi_url)}request:method: geturl: /fenmi/codeheaders:Authorization: '{{access_token}}'params:Accept: application/json, text/plain, */*Accept-Encoding: gzip, deflate, br, zstdAccept-Language: zh-CN,zh;q=0.9Connection: keep-aliveextract:uuid: '"uuid":"(.*?)"'validate:-   equals: {code: 200}-   equals: {msg: "操作成功"}                # 解释:name:为接口名称         base_url:读取config.yml文件的域名IP            request:请求参数           method:请求方式           url:接口地址          headers:请求头,比如token,'{{access_token}}'为取上游接口返回值做变量进行参数化,做参数化为固定写法'{{变量名}}'       params: 请求参数,具体需要看接口请求传参方式         extract:用于存在上下游接口关联时对返回值进行取值,固定写法,'"uuid":"(.*?)"'为正则表达式取值,也可用json提取,固定写法'"变量名":正则表达式'          validate:断言           --test_fenmi.py: 单用例执行器,执行式传入对应yaml文件地址即可import allureimport pytestfrom common.requests_util import Requestutilfrom common.parameters_until import read_file@allure.epic('XX互联')@allure.feature('登录并查询服务收入细项列表数据')class Testrequests:# 获取access_token(get请求)@allure.story('获取uuid并登录获取token')@allure.severity("normal")@pytest.mark.parametrize("caseinfo",read_file('/testcases/fenmi/login.yml'))def test_get_token(self,caseinfo):allure.dynamic.title(caseinfo['name'])allure.dynamic.description(caseinfo['name'])Requestutil().analysis_yaml(caseinfo)

–all.py: 主运行程序

–conftest.py: 测试配置工具,clean_extract方法为重跑时清除原文件数据

–debugtalk.py:自定义函数,用于存放公共函数和变量的文件

–environment.properties:用于生成allure测试报告时,配置展示环境数据

–pytest.ini: pytest测试运行配置文件,用于配置pytest运行时指定一些参数

[pytest]
addopts = -vs --alluredir=reports/temp --clean-alluredir            运行时清除原先的测试报告及临时文件
; testpaths = testcases/fenmi                                       执行单个项目测试文件时可选一个testcase目录
testpaths = testcases/fenmi testcases/weixin testcases/Zgen         执行多个项目测试文件时可选多个testcase目录   
python_files = test_*.py                                            执行的文件,及测试用例
python_classes = Test*                                              执行对应测试用例目录所有Test开头的类
python_functions = test_*                                           执行对应类下所有的test开头的方法

五、用例集

1)Yaml用例文件说明:

在这里插入图片描述

2)用例执行文件说明:

在这里插入图片描述

3)CSV文件用例读取:

data参数:

在这里插入图片描述

Yaml文件参数化:

在这里插入图片描述

4)testcase文件:为用例集可在用例集新增对应测试项目可按对应项目命名

5)yaml文件:为对应接口请求参数,可在yaml文件添加一条或者多条用例请求参数

6)test_*.py文件:通过pytest框架封装读取yaml文件参数并可运行的用例运行器

六、接口自动化框架规则

1.必须有的四个一级关键字:name,base_url,requests,validate
2.request关键字必须包含两个二级关键字:method,url
3.传参方式:在request一级关键字下,通过二级关键字参数传参。
如果是get请求,通过params传参。如:

  params:grant_type: client_credentialappid: XXXXXsecret: XXXX
如果是post请求:传json格式,通过json关键字传参。如:json: {"tag": {"id": 100, "name": "XXXaaa" }}传表单格式,通过data关键字传参。如:data:{"tag": {"id": 100, "name": "XXXCaaa" }}传文件格式,通过files关键字传参。如:files:media: "E:/Tanzl.jpg"

4.如果需要做接口关联,那么必须使用一级关键字:extract
提取:

如:json提取方式
extract:access_token: access_token
如:正则表达式提取方式
extract:access_token: '"access_token":"(.*?)"'取值:如:access_token={{access_token}}

5.热加载,当yaml文件需要使用动态参数时,那么可以在debugtalk.py中写方法调用。

  注意:传参时,需要什么类型的数据,需要做强转。int(mix),int(max),如:# 获取随机数def get_random_number(self,mix,max):return random.randint(int(mix),int(max))热加载取值:${get_random_number(100000,999999)}

6.此框架支持两种断言方式:分别是equals和contains断言:
如:

validate:
-   equals: {status_code: 200}
-   equals: {expires_in: 7200}
-   contains: access_token

7.数据驱动使用csv和一级关键字parameters实现:如:

yaml写法:parameters:name-appid-secret-grant_type-assert_str: data/get_token.csv
csv写法:name,appid,secret,grant_type,assert_str获取access_token统一鉴权码,wx9b755d429f6fb216,b963db0b97c8487b0cb920a240bd78e3,client_credential,access_tokenappid必填项检查,"",b963db0b97c8487b0cb920a240bd78e3,client_credential,errcodesecret必填项检查,wx9b755d429f6fb216,"",client_credential,errcode

8.config.yml日志监控,异常处理,以及基础路径的设置。

七、测试报告

在这里插入图片描述

1)测试报告概述

  1. 可进行筛选成功或失败的用例
  2. 可查看该用例的详情
  3. 测试套可查看对应测试模块用例集合
  4. 功能模块可查看对应场景化用例集合
    在这里插入图片描述

在这里插入图片描述

2)测试报告详情

可查看具体用例请求参数及返回报文

在这里插入图片描述

八、Jenkins拉取GitLab集成及运行

1)GitLab仓库代码

在这里插入图片描述

2)框架主运行程序改动点(如果没有Jenkins没报Allure不是内部命令可不改)

在这里插入图片描述

3)配置Jenkins环境变量及对应执行脚本

在这里插入图片描述

4)配置Allure测试报告

在这里插入图片描述

5)Jenkins拉取GitLab仓库代码及对应工作空间

在这里插入图片描述

6)运行构建项目

在这里插入图片描述
在这里插入图片描述

7)集成推送企业微信信息

在这里插入图片描述

8)Jenkins集成Allure测试报告展示

在这里插入图片描述

9)生成Allure报告后报告显示字段内容及含义

在这里插入图片描述

http://www.zhongyajixie.com/news/32804.html

相关文章:

  • 镇江当地网站西安seo顾问
  • 网站配色设计流量购买网站
  • 哪个网站教做ppt销售人员培训课程有哪些
  • 石家庄模板自助建站线上商城推广软文
  • 提升自己网站徐州网站设计
  • 网站架构包括西安seo外包行者seo06
  • 湖北省住房和建设厅网站首页引擎搜索是什么意思
  • 品牌建设实施方案 报优评奖西安seo全网营销
  • 网站建设 软件有哪些内容怎么做网站关键词优化
  • .net响应式网站模板seo还能赚钱吗
  • wordpress用户名备注东莞网站推广优化网站
  • 做网站怎么添加背景图片网络营销推广的5种方法
  • 制造业网站建设百度产品优化排名软件
  • 网站建设网站排名怎么做陕西今日头条新闻
  • 网站建设会员管理系统方案seo搜索培训
  • wp博客怎么改wordpress青岛seo网站建设公司
  • 汽车之家网页版跳极速版技术优化seo
  • soho做网站江西省seo
  • 普洱网站建设qq群推广软件
  • 免费网站模板建站百度账号购买网站
  • 网站建设什么价格什么叫做关键词
  • wordpress 内容格式济南seo关键词排名工具
  • 网站怎么做图片按按钮跳转网站排名seo软件
  • 如何用ad做网站百度收录怎么做
  • 为什么想做网站运营seo流量
  • 在货源网站自己拿样 加盟 做代理 哪个比较好?关系网站优化公司
  • 上海网站建设方法搜索引擎seo推广
  • 律所网站建设要求书长沙seo关键词排名
  • 银川哪家网络公司做网站做得好推广普通话绘画
  • 自己做的网站怎么上传到网络浙江seo外包费用