接口自动化测试框架开发 (pytest+allure+aiohttp+ 用例自动生成)

这篇具有很好参考价值的文章主要介绍了接口自动化测试框架开发 (pytest+allure+aiohttp+ 用例自动生成)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言:

第一部分(整个过程都要求是异步非阻塞的)

读取 yaml 测试用例

http 请求测试接口

收集测试数据

第二部分

动态生成 pytest 认可的测试用例

后续(yml 测试文件自动生成)


前言:

开发一个接口自动化测试框架是一个很好的方式,可以提高测试效率和准确性。在这个框架中,你可以使用pytest作为测试框架,allure作为测试报告生成工具,aiohttp作为异步HTTP客户端,以及用例自动生成功能来简化测试用例的编写。

近期准备优先做接口测试的覆盖,为此需要开发一个测试框架,经过思考,这次依然想做点儿不一样的东西。

  • 接口测试是比较讲究效率的,测试人员会希望很快能得到结果反馈,然而接口的数量一般都很多,而且会越来越多,所以提高执行效率很有必要
  • 接口测试的用例其实也可以用来兼做简单的压力测试,而压力测试需要并发
  • 接口测试的用例有很多重复的东西,测试人员应该只需要关注接口测试的设计,这些重复劳动最好自动化来做
  • pytest 和 allure 太好用了,新框架要集成它们
  • 接口测试的用例应该尽量简洁,最好用 yaml,这样数据能直接映射为请求数据,写起用例来跟做填空题一样,便于向没有自动化经验的成员推广 加上我对 Python 的协程很感兴趣,也学了一段时间,一直希望学以致用,所以 http 请求我决定用 aiohttp 来实现。 但是 pytest 是不支持事件循环的,如果想把它们结合还需要一番功夫。于是继续思考,思考的结果是其实我可以把整个事情分为两部分。 第一部分,读取 yaml 测试用例,http 请求测试接口,收集测试数据。 第二部分,根据测试数据,动态生成 pytest 认可的测试用例,然后执行,生成测试报告。 这样一来,两者就能完美结合了,也完美符合我所做的设想。想法既定,接着 就是实现了。

第一部分(整个过程都要求是异步非阻塞的)

读取 yaml 测试用例

一份简单的用例模板我是这样设计的,这样的好处是,参数名和 aiohttp.ClientSession().request(method,url,**kwargs) 是直接对应上的,我可以不费力气的直接传给请求方法,避免各种转换,简洁优雅,表达力又强。

args:
  - post
  - /xxx/add
kwargs:
  -
    caseName: 新增xxx
    data:
      name: ${gen_uid(10)}
validator:
  -
    json:
      successed: True

异步读取文件可以使用 aiofiles 这个第三方库,yaml_load 是一个协程,可以保证主进程读取 yaml 测试用例时不被阻塞,通过await yaml_load()便能获取测试用例的数据文章来源地址https://www.toymoban.com/news/detail-570875.html

async def yaml_load(dir='', file=''):
    """
    异步读取yaml文件,并转义其中的特殊值
    :param file:
    :return:
    """
    if dir:
        file = os.path.join(dir, file)
    async with aiofiles.open(file, 'r', encoding='utf-8', errors='ignore') as f:
        data = await f.read()

    data = yaml.load(data)

    # 匹配函数调用形式的语法
    pattern_function = re.compile(r'^\${([A-Za-z_]+\w*\(.*\))}$')
    pattern_function2 = re.compile(r'^\${(.*)}$')
    # 匹配取默认值的语法
    pattern_function3 = re.compile(r'^\$\((.*)\)$')

    def my_iter(data):
        """
        递归测试用例,根据不同数据类型做相应处理,将模板语法转化为

到了这里,关于接口自动化测试框架开发 (pytest+allure+aiohttp+ 用例自动生成)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一个简单的接口自动化测试框架:Python+Requests+Pytest+Allure

    project:api_test ——api_keyword ————api_key.py:接口驱动类 ——case ————test_cases.py:测试套件和测试用例 ——report_allure( 无需创建 ):allure报告 ——result( 无需创建 ):测试用例运行结果 ——VAR ————VAR.py:常量类 conftest.py:项目级别fixture main.py:主函数

    2024年02月03日
    浏览(49)
  • Python+Pytest+Allure+Git+Jenkins数据驱动接口自动化测试框架

    一、接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,RPC,Webservice,Dubbo,RESTful等类型。 接口测试流程 1、需求评审,熟悉业务和需求 2、开发提供接口文档 3、编写接口测

    2024年02月08日
    浏览(54)
  • (Python)Requests+Pytest+Allure接口自动化测试框架从0到1搭建

    前面,已经学习了如何用SpringBoot写接口以及与Mysql数据库进行交互,具体可查阅下面的这篇博客,今天学习一下基于Python的接口自动化测试框架的搭建,主要包括以下内容:利用request库发送请求,请求数据参数化处理,还涉及到数据库(Mysql+MongDB)方面的交互,包括如何取数

    2024年02月13日
    浏览(54)
  • Python+Requests+Pytest+Excel+Allure 接口自动化测试项目实战【框架之间的对比】

            --------UnitTest框架和PyTest框架的简单认识对比与项目实战-------- 定义: Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。 Pytest是Python的另一个第三方单元测

    2024年02月09日
    浏览(38)
  • 接口自动化框架(Pytest+request+Allure)

    接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱。 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试。 本次文章着重介绍第一种,功能性的接口自动化框架。 环境:Mac、Python 3,Pytest,Allure,

    2024年03月14日
    浏览(49)
  • Pytest自动化测试框架之Allure报告

    Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容, 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息和测试。 从开发/测试的角度来看: Allure报告可以快速查看到缺陷点,可以将

    2024年02月06日
    浏览(51)
  • 【Pytest实战】Pytest+Allure+Jenkins自动化测试框架搭建

    😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想当开发的测试,不是一个好测试✌️。 如果感觉博主的文章还不错的话,还请点赞、收藏哦

    2024年02月15日
    浏览(47)
  • 接口自动化测试:Python+Pytest+Requests+Allure

    本项目实现了对Daily Cost的接口测试: Python+Requests 发送和处理HTTP协议的请求接口 Pytest 作为测试执行器 YAML 管理测试数据 Allure 来生成测试报告。 本项目是参考了pytestDemo做了自己的实现。 项目结构 api : 接口封装层,如封装HTTP接口为Python接口 commom : 从文件中读取数据等各种

    2024年02月09日
    浏览(54)
  • Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

    本文主要介绍了Python+Requess+PyTest+Excel+Allure 接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像

    2024年02月07日
    浏览(47)
  • Pytest+selenium+allure+Jenkins自动化测试框架搭建及使用

    一、    环境搭建 1.    Python下载及安装 Python可应用于多平台包括windows, Linux 和 Mac OS X, 本文主要介绍windows环境下。你可以通过终端窗口输入 \\\"python\\\" 命令来查看本地是否已经安装Python以及Python的安装版本。     如未安装python, 推荐下载python 3.8.3以上版本,本文主要介绍window

    2024年01月18日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包