pytest

pytest文档28-重复执行用例(pytest-repeat)

烈酒焚心 提交于 2020-04-30 02:04:44
前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次。 pytest-repeat pytest-repeat是pytest的一个插件,用于重复执行单个用例,或多个测试用例,并指定重复次数,pytest-repeat支持的版本: Python 2.7, 3.4+ 或 PyPy py.test 2.8或更高 使用pip安装pytest-repeat pip install pytest-repeat 使用--count命令行选项指定要运行测试用例和测试次数 py.test --count=10 test_file.py 重复执行--count 运行以下代码,项目结构如下 web_conf_py是项目工程名称 │ conftest.py │ __init__.py │ ├─baidu │ │ conftest.py │ │ test_1_baidu.py │ │ test_2.py │ │ __init__.py │ ├─blog │ │ conftest.py │ │ test_2_blog.py │ │ __init__.py 代码参考: # web_conf_py/conftest.py import

pytest 全能的mark学习笔记(三)

前提是你 提交于 2020-04-30 00:29:15
pytest测试函数标记   1.用例标签tags:@pytest.mark.{marker_name} 描述: @pytest.mark.{marker_name}自定义一个mark,然后pytest -v -m {marker_name}只运行标记了{marker_name}的函数,pytest -v -m "not {marker_name}"来运行未标记{marker_name}的。 语法: ep: @pytest.mark.smoke @pytest.mark.get $pytest -m 'smoke'   仅运行标记smoke的函数 $pytest -m 'smoke and get'   运行标记smoke和get的函数 $pytest -m 'smoke or get'   运行标记smoke或get的函数 $pytest -m 'smoke and not get'   运行标记smoke和标记不是get的函数   2. 跳过用例:@pytest.mark.skip @pytest.mark.skipif 描述: skip和skipif可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能。要给跳过的测试添加理由和条件,应当使用skipif。 语法: ep: @pytest.mark.skipif(condition) @pytest.mark

Python与C/C++相互调用(转)

﹥>﹥吖頭↗ 提交于 2020-04-29 18:12:53
原文链接 作者 一、问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结。 二、Python调用C/C++ 1、Python调用C动态链接库 Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可。 (1)C语言文件:pycall.c /***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include <stdio.h> #include <stdlib.h> int foo(int a, int b) { printf("you input %d and %d\n", a, b); return a+b; } (2)gcc编译生成动态库libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c。使用g++编译生成C动态库的代码中的函数或者方法时,需要使用extern "C"来进行编译。 (3)Python调用动态库的文件:pycall.py import ctypes ll = ctypes.cdll.LoadLibrary lib = ll("./libpycall.so") lib.foo(1, 3) print '***finish***' (4)运行结果: 2、Python调用C++(类

pytest文档37-自定义用例顺序(pytest-ordering)

北城以北 提交于 2020-04-29 08:56:12
前言 测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果. 有些同学在写用例的时候,用例写了先后顺序, 有先后顺序后,后面还会有新的问题(如:上个用例返回数据作为下个用例传参,等等一系列的问题。。。) github 上有个 pytest-ordering 插件可以控制用例的执行顺序,github插件地址 https://github.com/ftobia/pytest-ordering 环境准备 先安装依赖包 pip install pytest-ordering 使用案例 先看pytest默认的执行顺序,是按 test_ording.py 文件写的用例先后顺序执行的 # test_ording.py import pytest # 上海-悠悠 def test_foo(): print("用例11111111111") assert True def test_bar(): print("用例22222222222") assert True def test_g(): print("用例333333333333333") assert True 运行结果 D:\demo>pytest test_ording.py -vs ============================= test session starts ======

docker学习7-Dockerfile制作自己的镜像文件

喜夏-厌秋 提交于 2020-04-28 22:20:13
前言 如果你是一个python自动化测试人员,某天你在公司终于完成了一个项目的接口自动化脚本工作,在你自己常用的本机或者服务器上调试完成了脚本,稳稳地没问题。 可是晚上下班回家,你自己找了个linux的服务器,想在家里也练练手,于是重新安装python3.6版本,网上找个教程巴拉巴拉的一大堆指令安装。 第二天你回到公司,领导说你这个脚本能不能放到另外一套环境的服务器上执行(与你本机环境是不通的),于是你又重复安装一遍python3.6环境和执行脚本的一些依赖包。 运气好还能联网pip在线安装,运气不好,都不能连接外网,只能本地安装。于是乎你开始怀疑人生,为什么我要重复安装这么多次环境啊。。。。 要是100个不同服务器,我是不是得安装100次啊,于是乎你会想:我是不是可以做一个虚拟的python3.6环境,事先安装好我需要的依赖包。 把做好的虚拟环境传到某个仓库(类似github),哪个机器需要用到,就一键导入过去就ok了,于是docker制作自己的镜像文件势在必行了,这就是今天要说的Dockerfile制作一个属于自己的镜像文件。 Dockerfile简介 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。 简单来说,Dockerfile就是把我们安装环境的每个步骤和指令,放到一个文件,最后一键执行,最后做成一个你想要的环境。

pytest 常用命令行选项学习笔记(一)

一世执手 提交于 2020-04-25 09:53:02
1. pytest --help/-help 查看全部选项 2. pytest -m选项 描述: 标记(marker)用于标记测试并分组,以便快速选中并运行。 3. pytest -v选项 描述: 使用-v/--verbose选项,输出的信息会更详细。最明显的区别就是每个文件中每个测试用例都占一行,测试的名字和结果都会显示出来,而不仅仅是一个点或字符。如下图: 4. pytest -s 描述: 关闭Captured stdout call输出信息(失败或成功都不显示输出结果),但是会显示在test session start部分效果等同于 --capture=no 实例: $pytest teset_sample.py $pyteset -s test_sample.py,加了-s不再显示Captured stdout call信息,但是会显示test session starts 5. pytest --alluredir=DIR 描述: 在指定目录生成allure报告(需要安装第三方库pip install allure-pytest) 注意:pytest-allure-adaptor已经废弃,如果安装了它会导致pytest无法正常运行,所以建议安装allure-pytest 6. pytest test.py --reruns 3 或 pytest test.py -

allure定制化输出测试报告,让报告锦上添花!

一曲冷凌霜 提交于 2020-04-25 04:04:08
一、定制化后的效果展示   用两张图展示效果: 二、注意别踩坑   allure定制化想必大部分情况都会去选择pip install pytest-allure-adaptor这个插件,安装完成后,运行定制化代码出现以下报错:      安装了pytest-allure-adaptor插件的定制代码像这样的:      我们会使用allure.MASTER_HELPER下的方法去进行定制,通过查看该插件的官网 https://pypi.org/project/pytest-allure-adaptor/ ,发现版本不匹配,因此抛出了异常      解决办法: pytest-allure-adaptor版本过低不兼容当前版本的allure,选择 不安装该插件 使用allure下的方法去进行定制 三、定制化内容    使用前,先引入allure模块 import allure 1.feature——测试用例特性(主要功能模块)   使用方法:@allure.feature()          2.story——feature功能模块下的分支功能   使用方法:@allure.story()       3.severity——测试用例的严重级别   Allure中对严重级别的定义: blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作) critical级别:临界缺陷(

pytest文档31-allure标记用例级别severity

我们两清 提交于 2020-04-25 02:25:37
前言 我们在做功能测试的时候,执行完一轮测试用例,输出测试报告的时候,会有统计缺陷的数量和等级。 在做自动化测试的过程中,当你的测试用例越来越多的时候,如果执行一轮测试发现了几个测试不通过,我们也希望能快速统计出缺陷的等级。 pytest结合allure框架可以对用例的等级做详细的划分。 用例等级 allure对用例的等级划分成五个等级 blocker  阻塞缺陷(功能未实现,无法下一步) critical  严重缺陷(功能点缺失) normal   一般缺陷(边界情况,格式错误) minor  次要缺陷(界面错误与ui需求不符) trivial   轻微缺陷(必须项无提示,或者提示不规范) 比如我的用例有以下4条 那么对应的用例的等级应该是 修改个人信息-sex参数为空 这个属于边界值情况的测试,应该是normal级别 修改个人信息-sex参数传F和M两种类型,成功(枚举类型) 这个是针对接口的功能点详细测试 critical级别 修改个人信息-修改不是本人的用户信息,无权限操作 这个是针对接口的功能点详细测试 critical级别 修改个人信息-修改自己的个人信息,修改成功 这是用例是测试主流程 blocker级别 pytest用例 根据测试用例的重要性划分测试用例等级,如果没指定等级,默认为normal级别 import pytest import allure ''' 作者

pytest+allure生成测试报告

若如初见. 提交于 2020-04-25 02:24:24
一 环境搭建与使用demo 二 allure自定义设置 三 jenkins+python+allure持续集成 一 环境搭建与使用demo 环境信息:python3.6.5 pytest5.1.2 allure2.13.0 allure-pytest2.8.5 allure的官方教程 https://docs.qameta.io/allure/ windows10下教程 1.安装pytest与allure-pytest cmd下执行: pip install pytest # python的第三方单元测试框架 pip install allure -pytest # 用于连接pytest和allure,这一步会安装allure-pytest和allure-python-commons包 2.安装allure(官方安装说明 https://docs.qameta.io/allure/#_installing_a_commandline ) 首先安装 windows下安装scoop 然后在cmd下执行如下红色命令: C:\Users\acer> powershell # 进入到powershell PS C:\Users\acer> scoop install allure # 安装allure Installing 'allure' (2.13.0) [64bit] allure

Pytest+Allure环境的搭建

断了今生、忘了曾经 提交于 2020-04-25 02:24:11
Pytest+Allure环境的搭建 参考博客 测试报告解释 pytest+allurre进阶 1. pytest的安装: 1.1. windows下: pip install pytest 1.2. linux下: pip install pytest 2. 安装pytest-allure-adaptor插件 2.1. windows下: pip install pytest-allure-adaptor 3. allure的安装: 3.1. windows下: 前情提示: allure 是基于 Java 的一个程序,需要 Java1.8 的环境,没有安装需要去安装一下。 Windows下不能直接安装,点击此链接下载压缩包 下载之后,将压缩包解压到一个磁盘中,我这里用的是 F 盘 image 3.2. 配置 allure 的环境变量 image image 点击确定,保存。这样就可以通过 CMD 使用 allure 命令 3.3. 编写测试文件 pycharm 新建一个 test_demo.py 文件,代码如下: import allure @allure.MASTER_HELPER.feature("测试Dome") class TestDome (object): @allure.MASTER_HELPER.step("定义被测函数") def func (self, x):