web自动化结合Unittest框架实现参数化

1.为什么要实现参数化
实现脚本与测试数据的分离。减少代码量使得代码更加的简洁。
2.安装
注意:UnitTest 框架本身并不具备参数化功能, 因此需要安装第三方插件
安装:pip install parameterized
验证:
pip list -->只要包名及对应版本号正常显示即可
也可以在 PyCharm 中, 检查解释器包列表内是否存在对应的包名及版本号
3.代码演示
依然用QQ邮箱做演示。
定位当前url如下代码所示

  def type_chenggong(self):
        return self.driver.current_url
import unittest   #导入unittest框架
from selenium import webdriver
from object import Login
from parameterized import parameterized     #导包
# import time
# from HTMLTestRunner import HTMLTestRunner
class Test_login(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        # self.driver.implicitly_wait(10)
        self.login = Login(self.driver)
    def tearDown(self):
        self.driver.quit()
    def user_login_verify(self,username,password ):
        self.login.user_login(username,password)
    @parameterized.expand([['','******','你还没有输入帐号!'], ['145070016','','你还没有输入密码.!']])   #添加装饰器中,装饰器的最外层必须是列表形式的。列表内可以是元组或者列表
    def test_1(self,x,y,z):    #所有测试数据使用变量替换
        self.user_login_verify(username=x,password=y)
        po = self.login.duanyan()

        self.assertEqual(po,z)   #断言

    @parameterized.expand([['1450700616', '******','https://mail.qq.com/cgi-bin/frame_html']])
    def test_2(self,a,b,c):
        self.user_login_verify(username=a,password=b)
        po1 = self.login.type_chenggong()

        self.assertIn(c,po1)    #该断言方法对比前者是否包含后者,用于对比邮箱登录后的url是否正确

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

跳过功能使用

应有场景:对未完成的代码或不符合版本的测试方法或测试类执行跳过操作
实现方法:
在想要执行跳过的测试方法或测试类上方添加装饰器并调用方法即可
方法:
@unittest.skip(‘跳过原因’) -->直接跳过
@unittest.skipIf(成立的条件, “跳过原因”) -->符合条件跳过
这里博主就不演示在方法与上面类似直接添加在用例方法前面就可以了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值