您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium+Python?實現(xiàn)基本自動化測試
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2016/7/22 14:11:42 ] 推薦標簽:自動化測試 功能測試

  安裝selenium
  打開命令控制符輸入:pip install -U selenium
  火狐瀏覽器安裝firebug:www.firebug.com,調(diào)試所有網(wǎng)站語言,調(diào)試功能
  Selenium IDE 是嵌入到Firefox 瀏覽器中的一個插件,實現(xiàn)簡單的瀏覽器操 作的錄制與回放功能,IDE 錄制的腳本可以可以轉(zhuǎn)換成多種語言,從而幫助我們快速的開發(fā)腳本,下載地址:https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
  如何使用IDE錄制腳本:點擊seleniumIDE——點擊錄制——開始錄制——錄制完成后點擊文件Export Test Case——python/unittest/Webdriver——保存;
  安裝python
  安裝的時候,推薦選擇“Add exe to path”,將會自動添加Python的程序到環(huán)境變量中。然后可以在命令行輸入 python -V 檢測安裝的Python版本。
  瀏覽器內(nèi)殼:IE、chrome、FireFox、Safari
  1、webdriver:用unittest框架寫自動化用例(setUp:前置條件,tearDown清場)
1 import unittest
2 from selenium import webdriver
3
4 class Ranzhi(unittest.TestCase):
5     def setUp(self):
6        self.driver = webdriver.Firefox() #選擇火狐瀏覽器
7     def test_ranzhi(self):
8        pass
9     def tearDown(self):
10        self.driver.quit()#退出瀏覽器
  2、斷言,檢查跳轉(zhuǎn)的網(wǎng)頁是否和實際一致
  斷言網(wǎng)址時需注意是否為偽靜態(tài)(PATH_INFO)或者GET,前者采用路徑傳參數(shù)(sys/user-creat.html),后者通過字符查詢傳參數(shù)(sys/index.php?m=user&f=index)
  當采用不同方式校驗網(wǎng)址會發(fā)現(xiàn)變化。
  1 self.assertEqual("http://localhost:8080/ranzhi/www/s/index.php?m=index&f=index",
  2                    self.driver.current_url,  "登錄跳轉(zhuǎn)失敗")

  3、定位元素,在html里面,元素具有各種各樣的屬性。我們可以通過這樣區(qū)別其他元素的屬性來定位到這個元素.
  WebDriver提供了一系列的元素定位方法。常見的有以下幾種:id,name,link text,partial link text,xpath,css seletor,class,tag.
  1 self.driver.find_element_by_xpath('//*[@id="s-menu-superadmin"]/button').click()
  2 self.driver.find_element_by_id('account').send_keys('admin')
  3 self.driver.find_element_by_link_text(u'退出').click()
  定位元素需注意的問題:
  a.時間不夠,采用兩種方式(self.implicitly_wait(30),sleep(2))
  b.函數(shù)嵌套(<iframe></iframe>)
  1 # 進入嵌套
  2   self.driver.switch_to.frame('iframe-superadmin')
  3 #退出嵌套
  4   self.driver.switch_to.default_content()
  c.flash,驗證碼(關閉驗證碼或使用碼)
  d.xpath問題:好采用簡xpath,當xpath中出現(xiàn)li[10]等時需注意,有時頁面定位會出現(xiàn)問題
  4、采用CSV存數(shù)據(jù)
  CSV:以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本),CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,常見的是逗號或制表符。大量程序都支持某種CSV變體,至少是作為一種可選擇的輸入/輸出格式。
  1 melody101,melody101,m,1,3,123456,@qq.com
  2 melody102,melody101,f,2,5,123456,@qq.com
  3 melody103,melody101,m,3,2,123456,@qq.com
1 import csv
2 # 讀取CSV文件到user_list字典類型變量中
3 user_list = csv.reader(open("list_to_user.csv", "r"))
4 # 遍歷整個user_list
5 for user in user_list:
6     sleep(2)
7     self.logn_in('admin', 'admin')
8     sleep(2)
9     # 讀取一行csv,并分別賦值到user_to_add 中
10     user_to_add = {'account': user[0],
11                     'realname': user[1],
12                     'gender': user[2],
13                     'dept': user[3],
14                     'role': user[4],
15                      'password': user[5],
16                      'email': user[0] + user[6]}
17      self.add_user(user_to_add)

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd