首页 > 编程语言 >Python+Selenium框架实战系列003----测试数据分离与ddt技术&断言

Python+Selenium框架实战系列003----测试数据分离与ddt技术&断言

时间:2023-12-22 21:34:51浏览次数:45  
标签:Python self Selenium ddt ---- lp login data cls

一、测试数据分离

1、新建testData文件夹,新建login_data.py文件,如下所示:

    

2、在login_datas.py文件中存放测试用例数据,如下所示:

# 正常场景
success_data = {"mobile": "17839196010", "pwd": "duhui94619"}

# 异常用例--手机号异常
phone_data = [
    {"mobile": "178391", "pwd": "duhui94619", "check": "请输入正确的邮箱或手机号"},
    {"mobile": "178391960101", "pwd": "duhui94619", "check": "请输入正确的邮箱或手机号"},
    {"mobile": "ssss", "pwd": "duhui94619", "check": "请输入正确的邮箱或手机号"},
    {"mobile": " ", "pwd": "duhui94619", "check": "请输入正确的邮箱或手机号"},
]

3、修改test_login文件,使用ddt进行参数化,并增加断言,如下所示:

import unittest

import ddt as ddt

from framework.browser_engine import BrowserEngine
from pageObjects.login_page import LoginPage as LP
from testDatas import login_datas as LD


@ddt.ddt
class TestLogin(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        """
        测试固件setUpClass(),在每个测试类执行之前运行,基本用于初始化driver和页面对象实例化
        :return:
        """
        browse = BrowserEngine(cls)
        cls.driver = browse.open_browser(cls)
        cls.lp = LP(cls.driver)  # 初始化页面的一个页面对象实例。注意,一定要带cls.driver,不然会报错

    @classmethod
    def tearDownClass(cls):
        """
        测试固件tearDownClass(),测试类结束后的操作,这里基本上都是关闭浏览器
        :return:
        """
        cls.driver.quit()

    '''
    def setUp(self):
        """
        测试固件的setUp(),在每个函数执行前执行,每执行一次test开头的函数,都要执行一次
        :return:
        """
      '''

    def tearDown(self):
        """
        测试固件的setUp(),在每个函数执行结束后执行,此处用于函数执行结束后刷新当前页面
        :return:
        """
        self.driver.refresh()

    # 正常场景
    def test_login_normal(self, doc=""):
        """
        这里一定要test开头,把测试逻辑代码封装到一个test开头的方法里。
        :return:
        """
        doc = "登录_登录_正常登录"
        self.lp.loginLink()  # 调用页面对象中的方法
        self.lp.login(LD.success_data["mobile"], LD.success_data["pwd"])
        self.assertTrue(self.lp.get_exist())
        self.lp.get_windows_img(doc)  # 调用基类的截图方法

    # 异常用例---手机号错误
    @ddt.data(*LD.phone_data)
    def test_login_error(self, data):
        self.lp.loginLink()  # 调用页面对象中的方法
        self.lp.login(data["mobile"], data["pwd"])
        self.assertEqual(self.lp.get_moblie_error(), data["check"])


if __name__ == '__main__':
    unittest.main()

 

标签:Python,self,Selenium,ddt,----,lp,login,data,cls
From: https://www.cnblogs.com/geqiandeqingmu/p/14982086.html

相关文章

  • python自动化学习笔记5-----allure测试报告
    1、运行测试报告 2、allure注解的使用  3、优化测试报告之添加对应的标签 4、注解的使用     5、yaml文件格式 6、更改logo(1)allure目录下找到allure.yml的文件,增加插件    (2)在插件目录下添加要展示的图片    (3)修改styles.cs......
  • [Bookmark]-开源键盘
    立创开源【瀚文】HelloWord-KeyboardGitHubWorldEdit-No.1yz_keyboardvial-qmkusb-keyboard......
  • python自动化学习笔记6-----jekins环境搭建及使用
        msi版本安装后,要去电脑服务里面设置为自启动,否则重启电脑后使用不了。  web自动化1、实现linux部署jekins,window运行自动化代码,不在同一个机器上运行在执行机(自己的电脑上)访问jekins网址进行相应设置        运行后,进行连接,连接成功后,小......
  • c语言单链表
    #include<stdio.h>#include<stdlib.h>#defineERROR-1#defineSUCCESS0structlist_node{intdata;structlist_node*next;/*data*/};typedefstructlist_nodelink_list;intlist_get_size(link_list*list){intcount=0;......
  • 倾斜三维模型生成DOM、DSM(附下载软件)
    1、准备数据倾斜三维模型数据2、加载瓦片打开Dasviewer软件3、按范围选择瓦片如果数据太大需要对数据进行部分选择,可以用这个步骤左键双击结束导出选择瓦片,会生成新的瓦片文件夹4、导出DOM、DSM根据需求设置参数结果软件下载地址https://www.daspatial.com/cn/download......
  • 3.c++进阶语法函数和指针
    1.函数代码练手2.指针......
  • 2.7 Metallic与Speculer流程及相互转换
    一、PBR流程金属/粗糙度和高光反射/光泽度工作流程通用贴图:法线贴图(normalmap)AO贴图(ambientocclusionmap)高度贴图(heightmap)1.金属度/粗糙度工作流(常用)BaseColorRGB贴图-sRGBBaseColorRGB贴图-sRGB储存数据:非导体(电介质)的漫反射色/反照率颜色(DiffuseReflectedColor/Albedo)......
  • 2.5 常规游戏中模型通用要求介绍
    一、布线和理性多星点(4个及4个以上边的交点)如果是在中模阶段,减少使用多星点,因为会在细分是时出现凸点问题,如果要使用多星点,需要通过布线技巧把它移动至平面处,不要让他出现在倒角边缘。更改前,更改后更改前,更改后在模型上挖洞,且要保证都是四边面的情况下,是必然会出现五星点,五星点不可......
  • 2.2 模型基础
    建模流程作业这次搞了10天左右终于把作业做完了。先是去学习了下如何建模->然后将模型导入SubstancePainter里绘制贴图->最后导入到unity中(虽然最后效果很差),但是回过头来看整个过程学习到了次时代美术的工作流,思考后知道了为什么导入unity中效果会这么差,建模和sp中哪些地方出了问......
  • 2.3 硬表面基础
    一、什么是硬表面1.硬朗的感觉边缘处有棱角的感觉看起来会很硬,比如下图的工业制成品,会在边缘处聚集着高光,这种高光让整个模型看起来很厚重,很硬。表面光滑的有曲线的物体也是可以做出很硬的感觉,这种也是将高光收缩到一条线,或者某一线性区域内,显得整个物体很厚重,很硬。2.不厚重、......