资讯专栏INFORMATION COLUMN

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

89542767 / 438人阅读

  数字驱动


  数据库的更改进而推动自动化技术功能测试的落实,最后造成检测结果的变化。简单来说就是参数化设计的应用。


  检测推动在功能测试中的运用情景:


  测试流程的数字驱动;


  测试报告的数字驱动;


  配备的数字驱动;


  1、pytest融合数字驱动-yaml


  完成读yaml文件,先创建env.yml文件配备测试报告


  工程项目目录结构:


  data文件目录:储放yaml文件


  -
  dev:127.0.0.1
  #dev:127.0.0.2
  #prod:127.0.0.3


  testcase目录:存放测试用例文件


  import pytest
  import yaml
  class TestYaml:
  pytest.mark.parametrize("env",yaml.safe_load(open("./env.yml")))
  def test_yaml(self,env):
  if"test"in env:
  print("这是测试环境")
  #print(env)
  print("测试环境的ip是:",env["test"])
  elif"dev"in env:
  print("这是开发文件")
  print("开发环境的ip是:",env["dev"])
  #print(env)

  结果示例:

01.png

  2、pytest结合数据驱动-excel


  常用的读取方式有:xlrd、xlwings、pandas、openpyxl


  以读excel文件,实现A+B=C并断言为例~


  工程目录结构:


  data目录:存放excel数据文件

02.png

  func目录:存放被测函数文件


  def my_add(x,y):
  result=x+y
  return result

  testcase目录:存放测试用例文件


  import openpyxl
  import pytest
  from test_pytest.read_excel.func.operation import my_add
  def test_get_excel():
  """
  解析excel数据
  :return:[[1,1,2],[3,6,9],[100,200,300]]
  """
  book=openpyxl.load_workbook('../data/param.xlsx')
  sheet=book.active
  cells=sheet["A1":"C3"]
  print(cells)
  values=[]
  for row in sheet:
  data=[]
  for cell in row:
  data.append(cell.value)
  values.append(data)
  print(values)
  return values
  class TestWithExcel:
  pytest.mark.parametrize('x,y,expected',test_get_excel())
  def test_add(self,x,y,expected):
  assert my_add(int(x),int(y))==int(expected)


  3、pyetst结合数据驱动-csv


  csv:逗号文件,以逗号分隔的string文件


  读取csv数据:


  内置函数open()


  内置模块csv


  方法:csv.reader(iterable)


  参数:iterable,文件或列表对象


  返回:迭代器,遍历迭代器,每次会返回一行数据


  以读csv文件,实现A+B=C并断言为例~


  工程目录结构:

04.png

  data目录:存放csv数据文件


  func目录:存放被测函数文件


  def my_add(x,y):
  result=x+y
  return result


  testcase目录:存放测试用例文件


  import csv
  import pytest
  from test_pytest.read_csv.func.operation import my_add
  def test_get_csv():
  """
  解析csv文件
  :return:
  """
  with open('../data/params.csv')as file:
  raw=csv.reader(file)
  data=[]
  for line in raw:
  data.append(line)
  print(data)
  return data
  class TestWithCsv:
  pytest.mark.parametrize('x,y,expected',test_get_csv())
  def test_add(self,x,y,expected):
  assert my_add(int(x),int(y))==int(expected)


  4、pytest结合数据驱动-json


  json:js对象,是一种轻量级的数据交换格式。


  json结构:


  对象{"key":value}


  数组[value1,value2...]


  查看json文件:


  1.pycharm


  2.txt记事本


  读取json文件:


  内置函数open()


  内置库json


  方法json.loads()json.dumps()


  以读json文件,实现A+B=C并断言为例~


  工程目录结构:


  data目录:存放json数据文件


  func目录:存放被测函数文件


  def my_add(x,y):
  result=x+y
  return result


  testcase目录:存放测试用例文件


  import json
  import pytest
  from test_pytest.read_json.func.operation import my_add
  def test_get_json():
  """
  解析json数据
  :return:[[1,1,2],[3,6,9],[100,200,300]]
  """
  with open('../data/params.json','r')as file:
  data=json.loads(file.read())
  print(list(data.values()))
  return list(data.values())
  class TestWithJson:
  pytest.mark.parametrize('x,y,expected',test_get_json())
  def test_add(self,x,y,expected):
  assert my_add(int(x),int(y))==int(expected)


  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

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

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

相关文章

  • 做完自动化测试,但别让不会汇报毁了你...

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

    HelKyle 评论0 收藏0
  • 利用xdist实现自动化测试用例并行执行

    摘要:在测试行业,如果利用作为脚本语言开发自动化测试用例,可用的框架有等主流可供选择,个人感觉较之和应该算是现阶段最灵活,功能最全面,扩展最丰富的框架了。不知道各位在做自动化的时候有没有遇到过用例数过多,单机执行效率不高的困扰。 在测试行业,如果利用python作为脚本语言开发自动化测试用例,可用...

    tabalt 评论0 收藏0
  • 使用Django+Pytest,教你搭建在线自动化测试平台

      小编写这篇文章的主要目的,就是教给大家,如何使用Django+Pytest,并用Django+Pytest搭建在线自动化测试平台,具体怎么做呢?下面给大家做一个详细的解答。  一、测试平台:  解决分散用例执行方式,提供统一测试用例执行过程、用例管理、测试报告  主要是基于:  fastapi+vue.js  django+vue.js  django  二、搭建过程  2.1使用django...

    89542767 评论0 收藏0
  • 说说Python中的单元测试

    摘要:必然的,他们会抛弃标准库中的,使用或者发明自己心仪的单元测试框架。究其原因,一些人会说时间写代码都不够,哪还有空写单元测试。最后我的个人观点,单元测试其实还有一个非常重要的作用,就是替代函数文档注释。希望从今天起,你的代码也都有单元测试。 单元测试是每种编程语言必学的课题,是保护开发者的强力护盾,每个程序员都在时间允许的情况下尽可能多的写单元测试,今天我们不讨论其必要性,只抛砖引玉聊一...

    chengjianhua 评论0 收藏0
  • 2021年软件测试工具总结——单元测试工具

    摘要:单元测试框架作为的标准库,是其他单元测试框架的基础。可以和和配合使用编写单元测试。官网地址单元测试覆盖率工具单元测试中还需要用到代码覆盖率工具。代码覆盖率统计工具用来发现没有被测试覆盖的代码,完善单元测试的覆盖率。 在应用程序中,单元是具有一个或多个输入和单个输出的软件中最小可测试部分。单元...

    qingshanli1988 评论0 收藏0

发表评论

0条评论

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