iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
2
自我挑戰組

DevOps學習之旅系列 第 22

Day 22 Selenium 測試

Selenium 介紹

Selenium也是一個用于Web應用程式測試的工具。Selenium測試直接運行在流覽器中,就像真正的使用者在操作一樣。支持的流覽器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。這個工具的主要功能包括:測試與流覽器的兼容性--測試你的應用程式看是否能夠很好得工作在不同流覽器和作業系統之上。測試系統功能--建立回歸測試檢驗軟體功能和使用者需求。支持自動錄製動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。Selenium 是ThoughtWorks專門為Web應用程式編寫的一個驗收測試工具。

Selenium

安裝Selenium

pip install selenium

下載 Chrome Drive 並放在 /usr/local/sbin 底下

ChromeDriver 2.43

下載 Firefox Drive 並放在

geckodriver

螢幕快照 2018-10-23 下午9.46.47.png

第一個範例 vim sample.py

# 匯入 selenium 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys

# 設定使用者 Browser
browser = webdriver.Firefox()

# 開啟的頁面
browser.get('http://www.yahoo.com')

# 檢查 title
assert 'Yahoo' in browser.title

# 搜尋 p 
elem = browser.find_element_by_name('p')  # Find the search box
# 鍵盤輸入 seleniumhq
elem.send_keys('seleniumhq' + Keys.RETURN)

# 關閉 browser
browser.quit()
python sample.py

螢幕快照 2018-10-23 下午10.33.27.png

unitest 整合 selenium : vim test_selenium.py

# 匯入 unittest、selenium
import unittest
from selenium import webdriver

# 測試 class
class GoogleTestCase(unittest.TestCase):

    # 測試前動作
    def setUp(self):
        self.browser = webdriver.Firefox()
        self.addCleanup(self.browser.quit)

    # 測試
    def testPageTitle(self):
        self.browser.get('http://www.google.com')
        self.assertIn('Google', self.browser.title)

if __name__ == '__main__':
    unittest.main(verbosity=2)
python test_selenium.py

整合兩個測試案例

import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class GoogleTestCase(unittest.TestCase):

    def setUp(self):
        self.browser = webdriver.Firefox()
        self.addCleanup(self.browser.quit)

    def testPageTitle(self):
        self.browser.get('http://www.google.com')
        self.assertIn('Google', self.browser.title)

    def testYahoo(self):
        self.browser.get('http://www.yahoo.com')
        assert 'Yahoo' in self.browser.title

        elem = self.browser.find_element_by_name('p')  # Find the search box
        elem.send_keys('seleniumhq' + Keys.RETURN)

    def tearDown(self):
        self.browser.quit()

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

結論

Selenium 使用上非常方便,測試人員使用 selenium 來測試頁面動作是否正常.

參考

selenium


上一篇
Day 21 Jenkins 整合 Slack 通知
下一篇
Day 23 Jenkins 整合 Selenium 測試
系列文
DevOps學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言