6.pytest參數化操作


前面文章有寫道通過fixture中params參數完成參數化,但是該方式會應用到所有測試用例,如果只想在單個測試用例上使用,則需要用到@pytest.mark.parametrize這個裝飾器完成

我們想要實現對一個登陸程序的參數化操作。代碼如下:

# 登錄程序源碼
login_info = {'zhangsan':'123456','lisi':'000000'}
def login(username,password):
    if username in login_info:
        if password == login_info[username]:
            return '登錄成功'
        else:
            return '密碼輸入錯誤'
    else:
        return '用戶名輸入錯誤'
# 測試代碼
# @pytest.mark.parametrize該裝飾器所接收參數是通過列表的方式接收,每一組參數為一個元組,如果數據較多的情況下,可以將數據放到文件中讀取
@pytest.mark.parametrize("username,password,expect", [ ('zhangsan','123456','登錄成功'), ('zhangsi', '123456', '用戶名輸入錯誤'), ('zhangsan', '000000', '密碼輸入錯誤'), ]) def test_login(username,password,expect): assert login(username,password) == expect

 如果想要參數的自由組合,則可以通過多個參數化裝飾器完成

# 程序源碼
def login(username,password):
    print('用戶名為:%s\t密碼為:%s'%(username,password))
    
# 測試代碼
@pytest.mark.parametrize("username",['zhangsan','lisi','wangwu'])
@pytest.mark.parametrize("password",['123456','000000','abcdef'])
def testlogin(username,password):
    login(username,password)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM