Pytest接口自动化
文章平均质量分 71
本专栏针对Python+pytest+allure+log+yaml动态传参+ 数据驱动+关键字驱动+单接口参数化+多接口动态传参+pymysql +一键切换环境+多角色随意切换 +Jenkins持 续集成+Git+钉钉输出测试报告+并发执行+mark等操作(内含docker知识)
七月的小尾巴
只要学不死,就往死里学!
展开
-
python实现处理swagger接口文档,转换为yaml格式的自动化用例
让所有重复的工作简单化,本篇文档将带你实现通过swagger文档,转换成yaml文件格式的自动化用例~原创 2022-08-22 15:18:04 · 4593 阅读 · 3 评论 -
pytest自动化运行,控制台allure 报告运行时乱码
处理allure报告运行时乱码前言前言最近很多用我自动化框架的小伙伴经常在问,运行自动化,控制台allure乱码,因此整理一下可能排查思路,希望可以帮助到你们~自动化框架地址:https://gitee.com/yu_xiao_qi/pytest-auto-api2.可能出在的问题及解决办法:1、pycharm的路径没有添加到环境变量(path)中解决办法:将pycharm配置到环境变量中,重启pycharm即可2、pycharm的编码格式未设置解决办法:设置一下pycharm编码格式原创 2022-04-21 22:00:46 · 6555 阅读 · 1 评论 -
Python + pytest + yaml + allure + mysql + redis + 钉钉/企业微信通知,接口自动化框架V2.0,支持多业务处理,仅需维护yaml用例,无需要编写代码
python + pytest + allure + yaml + mysql + redis + 企业微信通知开源接口自动化框架相关操作文档前言三级目录开源接口自动化框架相关操作文档前言本章节主要针对在 Gitte 中开源的自动化框架,进行相关功能介绍。框架主要使用 python 语言编写,结合 pytest 进行二次开发,用户仅需要在 yaml 文件中编写测试用例,编写成功之后,会自动生成 pytest 的代码,零基础代码小白,也可以操作。框架中支持mysql三级目录...原创 2022-04-05 17:57:22 · 10949 阅读 · 30 评论 -
处理自动化多进程执行自动化时,企业微信报告通知触发多条
前言原先开源的框架中,多进程执行自动化脚本时,如假设我程序中开启了三个进程,执行用例为100条,此时企业微信通知,会随着所设置的进程数量发送三次,如下截图,实际我自动化场景只是跑了一次,但是执行完成时,给我推送了三条通知这里我希望哪怕是多进程执行,但是每次触发jenkins任务时,通知只需要发送一次,并且汇总整个自动化的执行情况。处理思路这里的处理思路,我采用的是存储到redis缓存中:1、首先程序执行之前,使用pytest提供的钩子函数 pytest_runtest_makereport,收集原创 2022-02-17 10:43:42 · 1536 阅读 · 0 评论 -
使用 mitmproxy + python 做拦截代理,解放双手,生成自动化测试用例
前言是不是有很多小伙伴在做接口自动化的时候,大量的测试用例数据,写的即枯燥,有乏味呢?那么下面你们的福利来啦~本文章会基于 mitmproxy + python 做代理拦截,将我们拦截到的接口请求,转换成 .yaml 格式文件的测试用例,文件格式如下:有的小伙伴是不是会担心,你们的yaml用例数据结构和我不同呢?完全不用担心,文章下方我会提供源码,只需要找到下方截图中的代码,更改你们自己的数据结构即可~下面话不多说,我们进入正文什么是 mitmproxy ?文章地址: https://bl原创 2022-02-09 15:00:35 · 3810 阅读 · 9 评论 -
Linux环境知道文件名称,但是不知道存放路径在哪?一行命令轻松处理
今天遇到一个问题,我用doker容器安装的jenkins,然后装好之后,我并不知道容器的存放路径在哪里,这个时候我想要修改一个jenkins的配置文件,于是找到了这个命令,如下:find / -name "jenkins.xml"是不是轻轻松松就找到了~...原创 2021-12-24 16:44:56 · 2628 阅读 · 1 评论 -
处理docker容器时间和宿主机时间不一致问题
新建容器之后,发现容器的时间和宿主机的容器不一致我们先看一下宿主机的时间,现在是北京时间进入容器之后,查看容器时间和宿主机的时间不一致,因为我现在容器的时间已经正常了,就不截图看容器时间啦~下面我们来处理这个问题:复制主机的localtimedocker cp /etc/localtime :【容器ID或者NAME】 /etc/localtime如果复制宿主机的local报错 Error response from daemon: Error processing tar file(exit原创 2021-12-24 14:37:31 · 1140 阅读 · 0 评论 -
教你如何修改运行中的docker容器的端口映射的三种方式
前言在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改。当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则。那么这种情况我们该怎么处理呢?今天小余教你如何修改运行中的docker容器的端口映射?方法一: 删除原有容器,重新建新容器这个解决方案最为简单,把原来的容器删掉,重新建一个。当然这次不要忘记加上端口映射。docker run -d -uroot -p 8989:8080原创 2021-12-23 20:19:15 · 28554 阅读 · 7 评论 -
Linux环境更换阿里镜像源提示Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/redhat.repo
如图,更换阿里镜像源时提示如下错误Invalid configuration value: failovermethod=priority in /etc/yum.repos.d/CentOS-epel.repo; 配置:ID 为 “failovermethod” 的 OptionBinding 不存在首先,按照提示来,我们进入报错的文件vi /etc/yum.repos.d/CentOS-epel.repo原因是Redhat的dnf 不支持failovermethod 选项 所以需要将此选原创 2021-12-21 22:07:59 · 4536 阅读 · 4 评论 -
搭建docker-python环境时提示WARNING: pip is configured with locations that require TLS/SSL, however the ssl
首先docker搭建python环境之后,然后使用pip install安装依赖库时,抛如下异常pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.首先明确问题出现原因,是因为openssl版本过低或者不存在 so:查看openssl安装包,发现缺少openssl-devel包[root@localhost ~]# rpm -aq|grep原创 2021-12-16 20:58:55 · 2360 阅读 · 0 评论 -
Docker技术详解(零基础入门使用教程)
DockerDocker技术简介Docker的应用场景Docker 的组成Docker技术简介Docker 如日中天,这不是单纯的炒的概念,Docker的确解决了开发和运费的痛点,比如版本的搬迁,从测试环境搬迁到预发、生产环境,在企业开发与测试中,得到了非常广泛的应用。Docker 是一个开放源码的软件项目,基于GO语言Docker 可以让开发打包他们的应用以及依赖包到一个轻量级、可移植的容器中Docker 打包好容器,可以发布到任何流行的 Linux 机器上,也可以实现虚拟化容器是完全使用原创 2021-12-15 23:08:49 · 3063 阅读 · 0 评论 -
Linux环境下安装docker环境(亲测无坑)
Linux环境安装Docker环境安装前提条件第一步:检查并清除系统残余项,并安装Docker依赖环境第二步:Docker依赖环境搭建好之后,安装并启动Docker安装前提条件Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先验证你的服务器是否支持Docker!通过 uname -r 命令查看当前的内核版本[root@iZbp18425116ezmjdmbdgeZ ~]# uname -r4.18.0-193.14.2.el8_2.x86_64可以看到我的服务器是4.18.原创 2021-12-13 23:05:05 · 16126 阅读 · 4 评论 -
最新pytest框架, Python+pytest+allure+log+yaml+mysql+钉钉或企业微信通知,框架功能全面,零基础也可快速上手
框架介绍本框架主要是基于 Python + pytest + allure + log + yaml + mysql + 钉钉通知 + Jenkins 实现的接口自动化框架。git地址: https://gitee.com/yu_xiao_qi/pytest-auto-api项目参与者: 余少琪技术支持微信: ysq1603453211个人博客地址: https://blog.csdn.net/weixin_43865008如果对您有帮助,请点亮 小星星 以表支持,谢谢框架优势本框架原创 2021-12-13 13:10:22 · 8055 阅读 · 17 评论 -
解决使用@wraps装饰器,但是仍然未消除装饰器产生的副作用问题
前言今天在封装自动化框架中的日志装饰器的时候,遇到一个问题,我想要打印引用装饰器中的函数名称,大家都知道,如果没有用 @wraps 装饰器,会打印出装饰器自身的函数名,那么我们就需要使用了 @wraps 去消除封装装饰器产生的副作用,打印引用装饰器的函数名称,但是我使用了@wraps 之后,发现并没有生效。下面是我封装的日志装饰器的代码:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2021/11/30 23:25# @Autho原创 2021-12-08 23:38:59 · 578 阅读 · 0 评论 -
pytest零基础入门到精通(05)Allure报告的隐藏用法
allure报告功能详解Environment添加Environment解决配置文件被删的问题Categoriesallure.step()@allure.step()方式with allure.step()方式allure.attach@allure.description()@allure.title()@allure.link()@allure.issue()@allure.testcase()@allure.epic()/feature()/story()EnvironmentEnvironme原创 2021-11-29 18:47:25 · 2299 阅读 · 1 评论 -
pytest零基础入门到精通(05)Moke技术详解
Moke技术什么是Moke?Moke的介绍下载moco配置json文件启动moco配置不同的请求约定URI约定请求参数约定请求方法约定请求头约定请求体-form约定请求体参数-jsonuri-startsWith匹配uri-endWith匹配uri-contain包含定义返回状态码定义返回响应头重定向返回JSON格式的数据总结什么是Moke?在我们软件测试过程中,比如项目开发期间,我们需要提前接入自动化阶段,但是这个时候开发接口并没有开发好,这个时候,我们就可以通过Mock技术来构造一个虚拟对象来替代业原创 2021-11-25 15:14:57 · 2136 阅读 · 0 评论 -
pytest零基础入门到精通(04)conftest文件详解
conftest文件详解conftest的作用yield实现teardownyield+with的结合addfinalizer终结函数conftest的作用首先, conftest.py 的文件名称是固定的, pytest 会自动识别该文件,我们可以理解成一个专门存放 fixture 的配置文件。一个工程下可以建多个 conftest.py 文件,一般我们都是在工程根目录下设置的 conftest 文件,这样会起到一个全局的作用。 我们也可以在不同的子目录下放 conftest.py ,这样原创 2021-11-25 11:28:23 · 5454 阅读 · 0 评论 -
pytest零基础入门到精通(03)fixture的运用
pytest之fixtures的运用fixture的基础运用fixture传递测试数据fixture的实例化顺序使用多个fixturefixture依赖其他fixturefixture重命名fixture之requestrequest.config.rootdirrequest.getfixturevaluefixture之pytestconfigfixture的基础运用setup、teardown 可以实现在执行用例前或结束后加入一些操作,但这种都是针对整个脚本全局的。那么假设我们有模块a、模块b,他原创 2021-11-24 19:07:48 · 1950 阅读 · 1 评论 -
pytest接口自动化零基础入门到精通(02)pytest前后置
setup和teardown用过 unittest 的小伙伴应该都知道, unittest 提供了两个前置方法和两个后置方法。分别是:setup()setupClass()teardown()teardownClass()那么pytest作为升级版,自然也也提供了类似 setup、teardown 的方法。pytest在前后置这一块,会做的更细致化,分别分为模块级、类级、方法级、函数级、方法细化级。下面我们来了解一下。模块级(开始于模块始末,全局的):setup_module()、t原创 2021-11-24 16:09:01 · 776 阅读 · 1 评论 -
pytest接口自动化零基础入门到精通(01)入门基础篇
pytest入门到精通pytestpytest框架注意实现pytestpytest框架注意实现.py 测试文件必须要已test_开头,或者_test结尾测试类必须要已Test开头,并且不能有 init 方法测试方法必须已test_开头断言必须要使用assert...原创 2021-11-24 14:45:05 · 5488 阅读 · 2 评论