随笔分类 - Pytest测试框架
摘要:一、前言 前几天有人问我的框架在登录时支不支持用户名、密码以及验证码。我回答是不支持,因为验证码是为了防爬虫的,自动化遇到有验证码可以叫开发去掉或者写个万能验证码,那同学给我的回答是开发不愿意,只能自己搞。哈哈哈,怎么说呢,工作中学会说服开发也是自己的一种能力呢。好的,下面开始研究识别图形码的案例了
阅读全文
摘要:一、源码,c_page.py ''' @Date:2022/11/14 14:36 @Author:一加一 ''' import streamlit as st import os import sys BASE_DIR = os.path.dirname(os.path.dirname(os.pa
阅读全文
摘要:一、在cmd安装repeat pytest-repeat是pytest的一个插件,用于重复执行单个用例,或多个测试用例,并指定重复次数,pytest-repeat支持的版本: python 2.7,3.4+ 或 PyPy py.test 2.8或更高 pip install pytest-repea
阅读全文
摘要:一、configparser安装 pip3 install configparser 二、新建config.ini [ENV] env = QA1 [QA1] url = https://qa1-xxx.cn s_url = https://qa-s-xxx.cn [QA2] url = https
阅读全文
摘要:一、前言 前面相当于已经讲完整体框架搭建了,本篇主要讲述在实际业务系统的接口请求中,如何运用好该接口自动化测试框架。 二、步骤演示 1、在conf/api_path.py新增需要测试的接口,标黄底色为新加 存放测试接口仅这一个文件就行,有需要测试的接口直接往里面加就好了。 # -*- coding:
阅读全文
摘要:一、前言 业务系统的登录均要经过统一登录系统S,本篇演示统一登录处理,一个是内部业务系统C(其余内部业务系统AB用的都是相同账号密码),一个是外部用户使用的系统W,因为账号密码以及headers信息都不一样,所以要分开处理登录。这里要先贴一下请求要用到的数据。 说明:登录进了S系统,拿到token即
阅读全文
摘要:一、前言 在项目中我们要频繁地用到log日志、request请求方法、断言等,所以我们可以把这些常用的方法封装成日志,下面将逐个文件讲述下,不会讲太细,但会把源码贴出来,还有一点要说的是公共方法如果看不懂的话可以不用纠结,知道用处以及清楚在实际业务中怎么调用公共方法就行了。 二、tools目录展示
阅读全文
摘要:一、前言 想想之前玩的框架,做的项目都是把数据用例冗余到一起的,不符合数据用例分离的思想,所以准备基于pytest搭建个测试框架,支持数据用例分离,接下来会用一系列文章逐步介绍整个框架是怎么搭建起来的。 二、项目结构概览 conf:存放接口路径、域名等信息 data:1、存放.json文件(接口的请
阅读全文
摘要:一、前言 对于Python项目,生成和使用requirements.txt是十分必要的。通过requirements.txt可以一次性保存和安装项目所需要的所有库。尤其是在不同电脑操作时。 allure_python_commons==2.9.43 loguru==0.4.1 pytest==5.4
阅读全文
摘要:一、前言 之前讲了jenkins如何设置定时任务执行脚本,结合实际情况,本篇讲述在jenkins构建成功后,如何生成测试报告,以及推送飞书(因为我公司用的是飞书,所以是发送到飞书机器人)。 本次实践搞了一天,踩了一些坑,其中有2个坑可参考如下: 1、关于jenkins生成allure报告是空的:ht
阅读全文
摘要:一、前言 之前学习了很多自动化测试框架,但是写的脚本都是本地执行,多数用来造数据。最近公司掀起一股自动化测试的风,所以就想研究下如何集成jenkins,本次采用pytest,用的是阿里云服务器centos7。 二、服务器环境准备工作 以下安装内容,之前的博客有提过,百度一下也可以找到大量参考资料,本
阅读全文
摘要:一、代码示例 import pytest '''装饰测试类: 适用场景:登录框的多种情况组合测试。比如账号空、密码空、账号密码都为空,可以用参数化方式处理''' @pytest.mark.parametrize("test_input,expected", [("3+5", 8), ("2+4",
阅读全文
摘要:一、setup、teardown使用案例 1、代码 ''' @Date:2022/2/13 13:02 @Author:一加一 ''' import pytest def setup_module(): print(" 整个.py模块开始前只执行一次:打开浏览器 ") def teardown_mo
阅读全文
摘要:一、前言 与unittest不同,pytest使用的是python自带的assert关键字来进行断言 assert关键字后面可以接一个表达式,只要表达式的最终结果为True,那么断言通过,用例执行成功,否则用例执行失败 二、常用断言 pytest 里面断言实际上就是 python 里面的 asser
阅读全文
摘要:一、Pytest特点 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 能够支持简单的单元测试和复杂的功能测试 支持参数化 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败 支持重复执行(rerun)失败的 case 支持运行由 nose, unitte
阅读全文