资讯专栏INFORMATION COLUMN

2021-09-03-接口自动化-python+requests+pytest+csv+yaml+a

李昌杰 / 689人阅读

摘要:本套代码和逻辑是本人的劳动成果,如果有转载需要标注,非常适合公司做项目的同学小白也可以学哦接口自动化项目目录公共方法的封装如果不用配置文件可以使用这个方法进行封装但是有一定的缺陷可以不使用字典。这是在正常的命令行解析之前发生的。

本套代码和逻辑 是本人的劳动成果,如果有转载需要标注,
非常适合公司做项目的同学!!!小白也可以学哦!

  • 接口自动化-python+requests+pytest+csv+yaml

1.项目目录

2.公共方法的封装

2.1如果不用配置文件 可以使用这个方法进行封装–但是有一定的缺陷!!!!

import requestsMETHODS = ["GET", "POST", "HEAD", "TRACE", "PUT", "DELETE", "OPTIONS", "CONNECT", "PATCH"]# 可以不使用----class HTTPClient (object):    def __init__(self, url, method="GET", headers=None, cookies=None):        """headers: 字典。 例:headers={"Content_Type":"text/html"},cookies也是字典。"""        self.url = url        self.session = requests.session ()        self.method = method.upper ()        if self.method not in METHODS:            raise Exception ("不支持的method:{0},请检查传入参数!".format (self.method))        self.set_headers (headers)        self.set_cookies (cookies)    def set_headers(self, headers):        if headers:            self.session.headers.update (headers)    def set_cookies(self, cookies):        if cookies:            self.session.cookies.update (cookies)    def send(self, params=None, data=None, **kwargs):        # urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)        response = self.session.request (method=self.method, url=self.url, params=params, data=data, verify=False,                                         **kwargs)        response.encoding = "utf-8"        # logger.debug("{0} {1}".format(self.method, self.url))        # logger.debug("请求成功: {0} {1}".format(response, response.text))        return response

2.2为什么要用yaml去做全局数据的配置

看我博客yaml的好处 https://www.cnblogs.com/zsplovezsp/p/12443036.html

3.测试用例和测试数据的格式


4.其他的就很简单了就不做,描述了–如果有想学python和测试开发,测试自动化的可以多关注一下

5.pytest常用的方法

pytest常用的方法和原理

1.pytest的原理

pytest插件基于pluggy模块;pluggy有三个重要概念:HookspecMarker(用来定义hook函数),HookimplMarker(用来实现钩子函数完成插件的逻辑)和PluginManager(用来负责注册和调用插件的管理器);

2.pytest的规定

所有规范和实现均遵循pytest_前缀命名约定,从而易于区分和查找
3.加载插件的方式

内置插件:从代码内部的_pytest目录加载 外部插件(第三方插件):通过setuptools entry
points机制发现的第三方插件模块 conftest.py形式的本地插件:测试目录下的自动模块发现机制
4.pytest插件的顺序

1.通过扫描命令行中的选项并阻止该插件被加载(即使内置插件也可以通过这种方式被阻止)。这是在正常的命令行解析之前发生的。-p no:name

2.加载所有的内置插件

3.通过预扫描命令行中,-p name选项,在实际解析命令行之前加载指定的插件

4.加载所有通过setuptools入口点注册的插件(可设置环境变量PYTEST_DISABLE_PLUGIN_AUTOLOAD进行禁用,仅加载明确指定的插件)

5.加载通过环境变量PYTEST_PLUGINS指定的所有插件

6.加载通过命令行推断出的所有confest.py文件:

-如果未指定测试路径,则使用当前dir作为测试路径

-如果存在指定测试路径,那么加载conftest.py和test */conftest.py,相对于第一个测试路径

注意,pytest是找不到藏在更深的子目录里的confest.py文件的,最好将confest.py保存在顶级的测试或者项目的根目录

7.通过在confest.py文件中的pytest_plugin指定的变量,递归加载所有的插件

5.安装路径

pytest第三方插件库网站 https://docs.pytest.org/en/latest/plugins.html

PyPI下载 https://pypi.python.org(可以使用pytest、pytest-、-pytest作为搜索关键字来搜索插件)
6.常用的插件简单描述

pytest-rerunfailures:失败用例重跑 pytest-html:生成xml/html格式的测试报告,存储于用户指定路径
pytest-repeat:重复执行多次用例 pytest-assume:进行多次断言
pytest-xdist:测试用例可以分布式执行,从而节省自动化测试时间
pytest-cov:覆盖率报告,显示哪些代码行已经测试过,哪些还没有 pytest-instafail:在测试运行期间报告失败
pytest-timeout:根据函数标记或全局定义进行超时测试
pytest-ordering:设定执行顺序。对于一些上下文依赖的,有时候可能需要设定一些特定执行顺序
pytest-cache:重跑上次失败的用例 pytest-autochecklog:自动生成测试日志
pytest-sugar:改变默认外观,添加了一个进度条

6.---------------------------------------------------


如果有想要代码和了解更多的可以加 _99Rampant

一定要备注!!!一定要备注!!!一定要备注!!!一定要备注!!!一定要备注!!!一定要备注!!!一定要备注!!!一定要备注!!!一定要备注!!!一定要备注!!!一定要备注!!!


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119154.html

相关文章

  • pytest功能测试数字驱动yaml/excel/csv/json

      数字驱动  数据库的更改进而推动自动化技术功能测试的落实,最后造成检测结果的变化。简单来说就是参数化设计的应用。  检测推动在功能测试中的运用情景:  测试流程的数字驱动;  测试报告的数字驱动;  配备的数字驱动;  1、pytest融合数字驱动-yaml  完成读yaml文件,先创建env.yml文件配备测试报告  工程项目目录结构:  data文件目录:储放yaml文件  -   dev...

    89542767 评论0 收藏0
  • 做完动化测试,但别让不会汇报毁了你...

    摘要:前端自动化测试百度搜索功能实战可以与结合生成测试报告。以网页版本的百度为例,百度首页呈现的功能新闻网页贴吧知道音乐图片视频地图等,我们以百度网页的搜索功能为例,使用结合自动化测试框架,完成一个搜索功能的测试。 ...

    HelKyle 评论0 收藏0
  • Python接口测试之requests

    摘要:简介是一个很实用的客户端库编写爬虫和测试服务器响应数据时经常会用到是语言的第三方的库专门用于发送请求前提要下载请求无参数请求有参数请求案例传参的第一种方式传参的第二种方式请求类似中的表单提交 ...

    番茄西红柿 评论0 收藏2637
  • python+pytest动化技术测试函数测试类测试标准的封装形式

      本文关键阐述了python+pytest自动化技术测试函数测试类测试标准的封装形式,文章内容紧扣主题开展详尽的基本介绍,具有很强的实用价值,务必的朋友可以学习一下  序言  那么今天,我想跟大家聊聊python+pytest接口自动化里将编码开展封装形式,只有把测试程序开展封装形式,才会被测试框架鉴别实行。  例如单独插口要求编码如下所示:  importrequests   headers=...

    89542767 评论0 收藏0
  • python+pytest接口动化主要参数关系

      文章主要是详细介绍了python+pytest接口自动化技术主要参数关系,主要参数关系,又叫插口关系,即插口之间产生参数联络或依靠,大量相关知识必须的小伙伴们可可以了解一下  序言  那么今天,小编想跟大伙儿来讲讲python+pytest接口自动化测试主要参数关系,小编那边就不多说了废话了,大家可以直接直入主题。  一、什么叫主要参数关系?  主要参数关系,又叫插口关系,即插口之间产生参数联...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<