python+selenium+unittest+HTMLTestRunner读取csv文件参数化登陆测试

本文档介绍了如何使用Python结合Selenium、unittest和HTMLTestRunner进行参数化登录测试,通过CSV文件读取参数。在编写过程中遇到了脚本只运行一次的问题,通过调试和异常处理解决了这一问题,最终实现无论错误是否发生,测试都会继续进行。并展示了脚本的最终形态和测试报告的截图。
摘要由CSDN通过智能技术生成

之前尝试了Python+selenium+unittest+HTMLTestRunner(传送门)写了登陆脚本,然后又看了参数化及循环,于是决定写个参数化的登陆脚本。当然遇到问题是在所难免的,几经周折,最后还是完成了参数化脚本。所以写下本帖记录一下,方便以后查阅。现在先来分析一下脚本出现的问题,一开始脚本是这样的:

#构建登陆类,用unittest框架,所以是unittest.testCase
class test(unittest.TestCase):
    #构建登陆异常的方法
    def test_login(self):
        dr=webdriver.Chrome()   #调用谷歌浏览器,其他浏览器更改drvier
        #需要测试的网页
        dr.get('https://passport.cnblogs.com/user/signin')
      #构建参数化,格式为[[,,,],[,,,],[,,,]...[,,,],
      #最外面[]里的每个[]为一条用例,每条用例的项用,隔开
        user_pass=[['1','1','错误的用户名登陆','login_username_error','lblUserNameError',u'用户名错误!'],
                   ['','123456','不输入用户名登陆','login_username_null','lblUserNameError',u'请输入用户名!'],
                   ['testuser','1','错误的密码登陆','login_password_error','lblUserPwdError',u'密码错误'],
                   ['1','','不输入密码登陆','login_username_null','lblUserPwdError',u'请输入密码!']]
        #参数化定义变量,变量名自定义,数量为需要变量的数量
        #最多不超过参数化的数量,顺序与定义参数化的值顺序一致
        for (a,b,c,d,e,f) in user_pass:
            #输入用户名,定义a在最前面,所以对应用例的一个值
            #find_element_by_id里的值为网页抓取到的元素
            dr.find_element_by_id('input1').send_keys(a)
            #输入密码,b为参数化的密码
            dr.find_element_by_id('input2').send_keys(b)
            #点击登陆,click()为点击事件
            dr.find_element_by_id('signin').click()
            sleep(1)
            print (c)#c为参数化的测试目的 
            #get_screenshot_as_file为截图方法,path为路径
            #d为
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值