requests接口自动化-pytest框架
pytest框架规则
- 测试文件以test_开头或者以_test结尾
- 测试类以Test开头,并且不能带有init方法
- 测试函数以test_开头
- 断言使用assert
pytest框架运行用例
运行单个文件
运行多个文件
运行整个目录
import pytest
if __name__=="__main__":
# 运行单个文件,添加对应文件的路径,使用相对路径
pytest.main(['../test_requests/test_assert.py']) # ../ run_case目录与test_requests属于同于层级,先回到上层目录,在进入test_requests
# 运行多个文件,添加对应文件的路径,使用列表形式
pytest.main(['../test_requests/test_assert.py','../test_requests/test_assert1.py'])
# 运行整个目录
pytest.main('../test_requests')
pytest动态关联,定义为全局变量
把需要调用的值定义为全局变量,后面接口进行应用
- python的全局变量和局部变量:https://blog.csdn.net/zhaogeno1/article/details/80298702
- python全局变量的定义:https://www.cnblogs.com/weilaibuxiangshuo/p/11115973.html
第一:如定义在类或者函数体外,在函数或者类中引用需要用到 global声明
temp_t = "ceshi"
def tmp1():
global temp_t
temp_t =1
print temp_t
结果:1
第二:直接在函数或类中定义,需要先执行函数或者类,才能执行输出
def a():
global cc
cc = "bb"
def b():
global cc
cc = "kk"
a()
b()
print(cc)结果:kk
pytest生成报告
生成html报告 '--html=../report/report.html'
- pytest-html安装


- 生成报告


执行以下代码:
import pytest
if __name__=="__main__":
# 生成hmtl报告,后面为路径和报告文件名称,'--html=../report/report.html'
pytest.main(['../test_case/','--html=../report/report.html'])
生成xml报告 '--junitxml=../report/report.xml'



生成allure报告 '--alluredir','../report/reportallure/'
首先安装pytest-allure
再下载allure工具包
1.下载安装包
2.解压安装包

3.配置环境变量
把bin路径配置到环境变量

4.生成报告,运行用例加上:'--alluredir','../report/reportallure/'

5.进入报告目录
6.运行生成报告命令
(venv) D:\Test\python\hogwarts_TD>cd report
(venv) D:\Test\python\hogwarts_TD\report>allure generate ./reportallure/ -o ./reporthtml/ --clean
Report successfully generated to .\reporthtml



requests接口自动化-pytest框架的更多相关文章
- Pytest(18)pytest接口自动化完整框架思维导图
pytest接口自动化完整框架思维导图
- python+requests接口自动化框架
为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...
- requests接口自动化9-共享session和传递cookie
前言: session:用requests.session()创建会话,可以将会话信息传递给其他接口 cookie:用RequestsCookieJar或者cookie字典传递cookie信息 fil ...
- 自从学会了Python自动化Pytest框架,领导再也不敢在我背后指手划脚了
前言 大家都知道Python有自带的单元测试框架unittest,那为什么还要学习Pytest呢?先了解下Pytest优点 pytest: pytest是一个非常成熟的全功能的Python测试框架,是 ...
- python+requests接口自动化完整项目设计源码
前言 有很多小伙伴吵着要完整的项目源码,完整的项目属于公司内部的代码,这个是没法分享的,违反职业道德了,就算别人分享了,也只适用于本公司内部的业务. 所以用例的代码还是得自己去一个个写,我只能分享项目 ...
- python+requests接口自动化完整项目设计源码(一)
原文地址https://www.cnblogs.com/yoyoketang/tag/python接口自动化/ 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址 ...
- Python+requests接口自动化完整项目框架整理笔记
前言 通过学习"上海悠悠"博客,自己手动敲了一遍整体的自动化项目搭建,编写用例,打印log日志,生成测试报告,将报告发送至邮箱整体流程跑了一遍,勉强跑通了 一,项目结构 --cas ...
- requests接口自动化2-url里不带参数的get请求
最常用的是get,post请求,然后是put,delete,其他方法很少用 1. get请求几种方式 1.1.url里不带参数的get请求 接口请求fiddler返回内容: import reques ...
- python+requests接口自动化完整项目设计源码【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E ...
随机推荐
- PHP随手记2--获取随机n位不重复字符
定义一个函数返回26英文字母中n位不重复随机字符 基本思路是利用内置函数生成随机数,取出该位置字母之后将其删除,再进行下一次随机,最后实现字符串拼接就ok! 代码很简单,通俗易懂,直接上代码吧: 1 ...
- 终于讲清楚了:深入理解Java 应用程序中 final 关键字的各种使用场景
在 Java 语言众多的关键字中,final 关键字无疑是被提到最多的,也是在面试过程中经常被问到的知识点.今天,老王查找了很多材料,最后终于收集了关于 final 关键字比较全的知识点.首先,fin ...
- COM笔记-Widows 注册表
Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...
- MVVMLight学习笔记(五)---RelayCommand深究
一.概述 有时候,单纯的命令绑定不一定能满足我们的开发需求,比如我们需要在命令绑定的时候传递一个参数,这个时候,我们就需要使用RelayCommand的泛型版本了. RelayCommand的泛型版本 ...
- servlet中servletContext的五大作用(四)
1. 获取web的上下文路径 2. 获取全局的参数 3. 作为域对象使用 4. 请求转发 5. 读取web项目的资源文件 package day10.about_serv ...
- 源码解析.Net中DependencyInjection的实现
前言 笔者的这篇文章和上篇文章思路一样,不注重依赖注入的使用方法,更加注重源码的实现,我尽量的表达清楚内容,让读者能够真正的学到东西.如果有不太清楚依赖注入是什么或怎么在.Net项目中使用的话,请点击 ...
- ES6扩展——数组的新方法(Array.from、Array.of、Array.fill、Array.includes、keys values entries 、find)
1.Array.from(objec,回调函数)将一个ArrayLike对象或者Iterable对象(类数组对象)转换成一个数组 1)该类数组对象必须具有length属性,用于指定数组的长度.如果没有 ...
- Ubuntu中添加desktop entry
创建desktop文件 gedit my_app.desktop 添加文件内容,在启动时,选择加载的bashrc文件,用于初始化,这样可以用不同的desktop entry启动不同的环境,提高打开环境 ...
- 紫色飞猪的研发之旅--06go自定义状态码
在实际开发中,需要前后端需要协商状态码,状态码用于后端返前端时使用.在一个团队中,定义的状态码讲道理应该是一致的,项目开始的起始阶段状态码应该是定义了个七七八八的,随着功能的叠加而不断增加.此系列将围 ...
- Jenkins 构建JOB失败
问题描述 同事在使用Jenkins打包项目的时候报错 error:index-pack died of signal 15 fatal: index-pack failed 出现这个问题,初步怀疑是拉 ...