一、痛点分析 在实际企业的项目中,自动化测试的代码往往需要在不同的环境中进行切换,比如多套测试环境、预上线环境、UAT环境、线上环境等等,并且在DevOps理念中,往往自动化都会与Jenkins进行CI/CD,不论是定时执行策略还是迭代测试,那么问题来了,难道每次切换环境都需要提供一套测试代码?或者每次切换都要需修改我们的自动化环境配置?答案当然不是,不然怎么能叫测试自动化呢!在未使用pytest
转载
2024-08-04 18:40:11
64阅读
效果如图: 代码分析:# conftest.py层的代码
# coding=utf-8
import pytest, os, allure
from selenium import webdriver
import xlrd
# 用例失败后自动截图
@pytest.hookimpl(tryfirst=True, hookwrapper=True)
def pytest_runtest_mak
转载
2024-07-20 19:29:21
26阅读
pytest 的使用之前用到的,笔记记录# 静默模式,不打印多余信息
-q
# 所有除了通过
-a
# 生成简单报告
-r
-q: 安静模式, 不输出环境信息
-v: 丰富信息模式, 输出更详细的用例执行信息
-s: 显示程序中的print/logging输出
pytest --resultlog=./log.txt 生成log
pytest --junitxml=./log.xml 生成xml报
转载
2024-05-10 17:06:55
161阅读
前言:
之前同事在跑脚本的时候报错了,发现没法把需要的log信息打印出来,我这边定位问题比较麻烦,所以增加了log的打印。这个问题之前已经处理过了,本来以为是小问题,结果今天又要用到这个小技巧的时候居然想不起来了,还得去翻代码(忘性越来越大了( ̄_ ̄|||)想想还是决定把它记录下来,并且总结一下相关知识点。需要解决的问题:代码里添加的logging模块的报错信息不打印没法打印pytest的报错信息
转载
2024-03-04 15:02:43
129阅读
pageobject的重要思想:方法意义:1)用公共方法代表UI所提供的功能2)方法应该返回其他的pom或者用于断言的数据3)pageobject页面和方法中不要加断言,断言尽量放在测试用例中4)登陆成功和失败在pageobject中写成不同的方法,相同的部分可以再次封装成方法字段意义:不要暴露页面内部的元素给外部,不需要建模UI内的所有元素实战:清理数据adb命令:adb shell pm cl
转载
2024-06-04 05:02:57
11阅读
前言pytest 自动捕获级别为 WARNING 或以上的日志消息,并以与捕获的 stdout 和 stderr 相同的方式在每个失败测试的各自部分中显示它们。日志显示当输入pytest命令,不带任何参数时pytest如果运行的用例没有报错,那么打印的内容很简洁以下示例,当用例中有报错的时候# content of test_sample.py
import pytest
import loggi
转载
2024-03-19 23:08:16
89阅读
我们在学习或调试过程中,测试用例的调试信息都非常有用,可以让我们知道现在的运行情况,执行到哪步以及相应的出错信息等,可以在pytest里面,有时并不会输出所有信息,比如默认情况下pass的测试用例是没有print输出的,本文主要就是解决这个问题。 一、用print输出log信息 我们在编写简单的Python程序时,往往可以通过pr
转载
2023-08-16 18:05:32
391阅读
简介pytest 是一个成熟的全功能 Python 测试工具,可以帮助您编写更好的程序。它与 Python 自带的 Unittest 测试框架类似,但 pytest 使用起来更简洁和高效,并且兼容 unittest 框架。pytest 有以下实用特性:pytest 能够支持简单的单元测试和复杂的功能测试;pytest 本身支持单元测试;可以结合 Requests 实现接口测试;结合 Seleniu
转载
2024-03-29 12:39:47
405阅读
pytest_lean2.py
#coding=utf-8
import pytest
import os
import sys
import time
import json
sys.path.append("/".join(os.path.dirname(os.path.abspath(__file__)).split("/")[:-1])+"/lib")
import requests
转载
2019-11-27 00:51:00
253阅读
2评论
大家好,最近在学习自动化测试如何去打印log日志,首先我要知道为什么要去打印log日志?答:使用通俗易懂的话表达就是因为在测试的过程中,如果某条测试用例没有执行通过,出现了bug,有了日志的记录就可以把app,或者web,在那个页面,什么样的环境,做了什么操作出现的bug,总结的来说就是以下几个方面调试 用于开发进行调试,日志能够记录程序目前运行到了那个页面,处于那个状态辅助定位问题数据分析首先在
问题先上图,本人自己写了一个操作mysql的界面系统,但是打包中出现了很多的问题,打包好的exe程序运行时报错如下,从网上搜索了很多方法都不管用,很多文章答案同出一辙没有实际操作性,就算解决了问题也只是运气原因,本文将记录本人遇见问题到解决问题的整个思路。首先简单介绍下pyinstaller的基础使用,这里我使用如下命令安装:pip3 install pyinstallerpyinstaller
pytest 注册自定义标记
pytest.mark内置标记usefixture-在测试函数或类上使用fixture
filterwarnings-筛选测试函数的某些警告
skip-始终跳过测试函数
skipif-如果满足特定条件,则跳过测试函数
xfail-如果满足特定条件,则产生“预期失败”结果
parameterize-对同一测试函数执行
1、conftest.py文件是什么?需结合pytest的另一大特色fixture来介绍conftest.pyfixture:pytest中的fixture的是用于将测试前后进行预备、清理工作的代码分离出核心测试逻辑的一种机制pytest是按照fixture的名称搜索fixture。搜索顺序是:优先搜索当前测试所在类再搜索当前测试所在的模块然后搜索conftest.py接下来搜索内置fixture
转载
2024-09-04 22:29:59
12阅读
前言:python自带有一个logging标准模块,不需要另外安装,可以直接import使用,主要用于输出测试过程内部执行情况、错误、异常等信息,可以设置输出日志的等级、日志保存路径等。目录一、初步认识1.1 级别说明1.2 级别设置1.3 格式设置二、文件输出三、控制台输出四、公共日志模块设置-py文件五、公共日志模块设置-conf文件5.1 控制台输出5.2 文件与控制台输出一、初步认识1.1
转载
2024-03-15 05:41:21
605阅读
一、Pytest简介1.pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点:简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium、appium等自动化测试,requests+pytest接口自动化测试3.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如:pytest-selenium(集成selenium)
转载
2024-03-15 08:56:36
36阅读
当我们在使用pytest实现前后置调用时有两种方式方式一: 采用setup/teardown以及setup_class/teardown_class类似这种方式去实现前后置调用方式二: 采用pytest中强大的fixture装饰器来实现本期文章主要采用方式二来解决测试用例前后置调用的问题首先
转载
2024-04-05 11:50:16
47阅读
实时日志和捕获日志与实时标准输出和捕获标准输出是类似的,不同的是实时日志和捕获日志都是用来显示通过logging模块打印的的日志内容,而对于比如print打印的内容时不会在实时日志和捕获日志中显示的。 实时日志顾名思义,就是实时显示的日志,而捕获日志就是在执行的过程中将logging打印的日志都收集起来,同样pytest的对捕获日志的显示机制是当测试脚本失败后才会显示,而当用例通过时,则是不会显示
转载
2024-03-27 17:18:06
108阅读
目录Requests库介绍Requests库安装Requests库使用实际案例添加日志功能封装requests库使用pytest装饰器实现参数化通过读取Json文件实现参数化通过读取Yaml文件实现参数化通过读取Excel文件实现参数化封装文件解析方法测试报告Pytest-html报告Allure报告补充:文件上传关于Pytest和Allure如何使用请查看此文章,这里不再介绍Requests库介
转载
2024-07-31 15:24:44
74阅读
一直想弄弄清这里的东西,一直各种因素delay,今天务必要搞搞清一、先从官方文档上尝试去解读下什么是plugin和hook网上有现成的对你适用的插件时候,我们可以直接pip安装,拿来使用即可;但是有的时候,我们需要根据我们的实际需求定制些插件, 这时候,就需要我能自己写插件了,这里带出了plugin。1.那么插件里面包含着什么呢? ——一个plugin里可能包含着一个或者多个hook函数(hook
转载
2024-02-22 10:01:55
139阅读
pytest -v test_server.py::TestClass::test_method当然也能选择运行整个classpytest -v test_server.py::TestClass也能选择多个节点运行,多个节点中间空格隔开pytest -v test_server.py::TestClass test_server.py::test_send_http6,-k 组合调用执行部分用例