一個登入的自動化測試用例(新手)
阿新 • • 發佈:2019-02-02
一個登入的測試用例怎麼寫呢?小夥伴們都是:1、在使用者欄輸入xxxx,2、在密碼欄輸入xxxx,3、點選登入按鈕,登入成功。很多小夥伴都是這樣,其實不對。相對標準的用例應該是這樣:
1、開啟Firefox()瀏覽器 2、在開啟的Firefox()瀏覽器位址列輸入"http://www.xxxxxx.com" 3、在id為username的使用者欄輸入正確的使用者帳號:xxxxxxx 4、在id為password的密碼欄輸入正確的密碼:xxxxxx 5、點選id為login的“登入”按鈕 6、使用者登入成功,跳轉到xxxxx頁面 有的小朋友說這樣太麻煩了,其實這還不算標準的,其實我們還有很多的東西沒有寫出來。比如你是不是應該在第6條後面再加一條斷言呢?登入成功沒呢?登入後跳轉的頁面對不呢?登入後的使用者資訊對嗎?這些你都要考慮進去,如果出現串cookie的情況所以這些都是必要的!最後小夥伴們都問了那我們是不是這樣將用例翻譯成指令碼就行了呢?答案肯定是否定呢?你覺得這樣的指令碼有用嗎?我覺得沒有!因為這指令碼沒有可用性,沒有可維護性。why?如果我要換一個帳號登入你怎麼辦?不斷更改?如果元素id變了呢?這有複用性嗎?分享當時小夥伴們怒了,那這自動化根本就沒用還麻煩。答案其實是否定的,只是我們方式不對而已。按照剛才的翻譯出來是這樣。<span style="font-size:18px;">from selenium import webdriver #1、開啟Firefox()瀏覽器 dr = webdriver.Firefox() #2、在開啟的Firefox()瀏覽器位址列輸入"http://www.xxxxxx.com" dr.get('http://www.xxxxx.cm') #3、在id為username的使用者欄輸入正確的使用者帳號:xxxxxxx dr.find_element_by_id("username").send_keys("xxxxxx") #4、在id為password的密碼欄輸入正確的密碼:xxxxxx dr.find_element_by_id("password").send_keys("xxxxxx") #5、點選id為login的“登入”按鈕 dr.find_element_by_id('login').click() #6、使用者登入成功,跳轉到xxxxx頁面 assert"xxxx" in dr.title #'xxxx'是否在title裡面 也可以新增其他的斷言</span>
草草的寫了一下最後的一個登入測試指令碼 應該是這樣的:
(完成度95%)。 效能測試需要的東西很多暫時先提一下:開發語言(方便些效能指令碼)、中介軟體知識、伺服器知識、資料庫知識、網路知識這些差不多都需要會。<span style="font-size:18px;">from selenium import webdriver import unittest class TestLogin(unittest.TestCase): Login_url = 'http://www.xxxx.com' dr = None def setUp(self): print 'test start' self.dr = webdriver.Firefox() def tearDown(self): self.dr.quit() def test_Login(self): username = 'sssss' password = 'xxxxx' #可以呼叫外面的 self.dr.get(self.Login_url) self.login(username,password) t = self.dr.find_element_by_id('login') #查詢元素為login的東西 登入後的 self.assertTrue(username in t.text) #斷言 pass def login(self,user,pwd): #3、在id為username的使用者欄輸入正確的使用者帳號:xxxxxxx self.dr.find_element_by_id("username").send_keys(user) #4、在id為password的密碼欄輸入正確的密碼:xxxxxx self.dr.find_element_by_id("password").send_keys(pwd) #5、點選id為login的“登入”按鈕 self.dr.find_element_by_id('login').click() if __name__ == '__main__': unittest.main()</span>