python--数据驱动

  • 什么是数据驱动?
 数据驱动,指在自动化测试中处理测试数据的方式。
 通常测试数据与功能函数分离,存储在功能函数的外部位置。在自动化测试运行时,数据驱动框架会读取
 数据源中的数据,把数据作为参数传递到功能函数中,并会根据数据的条数多次运行同一个功能函数。
  • 为什么要数据驱动
1、便于维护(维护的焦点从代码转到测试数据)
2、数据所属的测试用例失败,不会影响到其他测试数据对应的测试用例
  • 数据驱动如何操作?
1、编写数据存储文件
2、编写读取数据工具
3、使用参数化引用

1.2 实际操作

  • 步骤1:编写数据存储文件
口诀:
	1、新建json文件,在文件中编写一个{}
	2、有几个模块,写几个key,值为列表
	3、列表中参数化数据有几组,就写几个{}
	4、每个{}中组成->说明+参数数据+预期结果
{
  "login": [
    {
      "desc": "登录成功",
      "ptone": "18886007825",
      "password": "123456",
      "code": "8888",
      "expect_text": "18886007825"
    }
  ]
}
  • 步骤2:读取工具封装
import json
#读取json工具
import os

def read_json(filename,key):
    filepath = os.path.dirname(__file__) + os.sep + "data" + os.sep + filename
    arr = []
    with open(filepath,"r",encoding="utf-8") as fp:
        #. get(key)':在生成的Python对象上调用此函数,访问与'key'关联的值
        for data in json.load(fp).get(key):
            arr.append(tuple(data.values())[1:])
            return arr

if __name__ == '__main__':
    print(read_json("login.json","login"))
  • 步骤3:参数化引用:
import unittest
from parameterized import parameterized
from selenium import webdriver
from page.page_login import PageLogin
from time import sleep

from util import read_json


class TestLogin(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.get("http://hmshop-test.itheima.net/Home/user/login.html")
        self.login = PageLogin(self.driver)

    def tearDown(self) -> None:
        sleep(3)
        self.driver.quit()

    @parameterized.expand(read_json("login.json","login"))
    def test01_login(self,phone,password,code,expect_text):
        try:
            #调用登录业务
            self.login.page_login(phone,password,code)
            #断言
            nickname = self.login.page_get_nickname()
            print("nickname:",nickname)
            self.assertEqual(nickname,expect_text)
        except Exception as e:
            print("错误!",e)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值