当前位置: 首页 > news >正文

金华品牌网站建设网站基本建设

金华品牌网站建设,网站基本建设,网站建设与网页设计实训报告,小程序代理加盟条仿引言 pytest-bdd 是一个专为Python设计的行为驱动开发(BDD)测试框架,它允许开发人员使用自然语言(如Gherkin)来编写测试用例,从而使测试用例更易于理解和维护。 安装 通过pip安装 pip install pytest-b…

引言

pytest-bdd 是一个专为Python设计的行为驱动开发(BDD)测试框架,它允许开发人员使用自然语言(如Gherkin)来编写测试用例,从而使测试用例更易于理解和维护。

安装

通过pip安装

pip install pytest-bdd

介绍

特性文件(Feature File):定义了要测试的系统功能。通常以.feature为扩展名,并使用Gherkin语言编写。特性文件包含特性名称、描述以及一个或多个场景。
场景文件(Scenario File):定义了特定场景的步骤。虽然pytest-bdd不直接要求场景文件具有特定的扩展名或格式,但通常会将场景步骤的定义放在Python测试文件中,并使用pytest-bdd提供的装饰器来映射场景文件中的步骤。
步骤定义:将特性文件中的步骤映射到Python代码中的函数。这些函数使用pytest-bdd提供的@given、@when、@then等装饰器来定义。
钩子:在特定测试事件(如测试开始或结束)时调用的函数。pytest-bdd提供了几个内置钩子,如before_scenario、after_scenario、before_step、after_step等,允许在测试的不同阶段执行自定义代码。

简单代码实现

feature文件编写

Feature: TestApiScenario: Successful TestGiven: 我是接口测试When: 调用 "www.baidu.com" 接口When: 使用 "get" 请求Then: 调用成功

python文件编写

import pytest
from pytest_bdd import scenarios, given, when, then, parsers
import requestsclass ApiCaller:def __int__(self):self.api = Noneself.methods = Noneself.types = Noneself.params = Nonedef call_api(self):print(self.api)result = requests.request(method,'http://' + self.api)return resultscenarios('test.feature')@pytest.fixture
@given('我是测试接口')
def api_caller():return ApiCaller()@when(parsers.parse('调用 "{api}" 接口'))
def api(api_caller, api):api_caller.api = api@when(parsers.parse('使用 "{methods}" 请求'))
def method(api_caller, methods):api_caller.methods = methods@then('调用成功')
def asserts(api_caller):result = api_caller.call_api()assert result.status_code == 200

运行

pytest test.py

拓展

通过上面简单的使用,我们知道行为驱动测试是通过pytest-bdd提供的@given、@when、@then等装饰器,来获取到feature文件中的参数,然后来进行编码测试。所以我们可以编写一个较为通用的python测试脚本,来运行所有的feature文件。这样我们只需要通过写feature文件,就可以进行接口自动化测试了。

import pytest
from pytest_bdd import scenarios, given, when, then, parsers
import requestsclass ApiCaller:def __int__(self):self.api = Noneself.methods = Noneself.types = Noneself.params = Noneself.headers = Nonedef call_api(self):result = requests.request(self.methods,'http://' + self.api)return resultscenarios('test1.feature')@pytest.fixture
@given('我是测试接口')
def api_caller():return ApiCaller()@when(parsers.parse('调用 "{api}" 接口'))
def api(api_caller, api):api_caller.api = api@when(parsers.parse('使用 "{methods}" 请求'))
def method(api_caller, methods):api_caller.methods = methods@when(parsers.parse('参数类型 "{types}"'))
def types(api_caller, types):api_caller.types = types@when(parsers.parse('参数 "{params}"'))
def params(api_caller, params):api_caller.params = params@when(parsers.parse('参数为空'))
def params_none():pass@when(parsers.parse('请求头 "{headers}"'))
def headers(api_caller, headers):api_caller.headers = headers@when(parsers.parse('请求头为空'))
def params_none():pass@then('调用成功')
def asserts(api_caller):result = api_caller.call_api()assert result.status_code == 200

我们把一些特殊场景提前定义好,比如请求头为空,参数为空。也可以根据自身业务来继续添加一些特殊场景,比如不同的校验方式等。这样,我们就可以通过一个python脚本,来实现不同的feature文件进行接口自动化测试。

http://www.yayakq.cn/news/203148/

相关文章:

  • 做镜像网站违法农产品网站开发背景
  • 信息公开和网站建设工作总结搜索引擎yandex入口
  • 深圳光明专业网站设计单位门户网站怎么做
  • 大连网站制做公司做网站需要
  • 个人主页网站申请智能建站系统免费版
  • 兰州网站seo哪家公司好阳江做网站多少钱
  • 电脑制作软件的工具深圳做网站乐云seo598
  • 网站建设公司怎样做账up网络推广公司
  • 做网站样本电销好做吗什么是网站静态页面
  • 都江堰市建设局网站曲阜做网站的公司
  • 想做国外的客户做网站怎么弄网站设计与实现
  • 如何搭建外贸网站科技政策要聚焦自立自强
  • 东风地区网站建设价格低福建省亿力电力建设有限公司网站
  • 网站建设哪个平台最好网站建设要注意什么
  • WordPress怎么添加留言功能莱芜网站优化怎么做
  • 广州 网站制作电商平台系统分销系统
  • 网站开发需求描述淮安做网站的公司有哪些公司
  • 网站开源程序企业做网站需要注意什么问题
  • 建站主机 wordpress网页微信版本
  • 给公司做的东西放到私人网站上哈尔滨模板网站建设
  • 河北唐山 网站建设惠州建站公司
  • 黑龙江省机场建设集团官网网站长春专业网站制作
  • 遵义网站建设厂家国外常用的网站开发系统
  • 做化工回收上什么网站企业网站哪个平台好
  • 电子商务网站建设侧重哪几个方面网页设计作业下载
  • 怎样用dw做网站手机 网站 系统
  • 网站建立于网页设计重庆江津网站建设
  • 安庆 网站建设正邦设计公司招聘要求
  • 网站服务器安全防护可以做头像的网站有哪些
  • 成都 网站建设 公司对招聘网站页面设计做建议