python和selenium如何做接口自動化測試?

mic神


問這個問題的估計是小白吧,python是開發語言,selenium是UI自動化框架,這兩個加起來是沒法做接口自動化測試的。

python+requests+pytest:

這個組合是市面上最流行的接口自動化組合套餐。requests是python的一個庫,提供了很多api方法,可以用來做http協議的接口測試,加上pytest框架,能夠幫助你快速入門接口自動化測試,具體更詳細的學習教程,自己百度一下一大堆。

python+selenium:

這個是web端的ui自動化測試組合,selenium提供了豐富的元素定位方法,可以滿足web端的ui自動化測試,也是當前最實用最流行的框架。

如果要做app端的ui自動化,可以使用appium,也是非常好用,我給你介紹的都是當前互聯網行業最流行的框架組合,希望你先去學習什麼是接口測試,再來了解接口自動化測試是怎麼回事。


測試老油條


自動化測試所具備的基礎:測試基礎,編程基礎,對自動化的想法。

當然,如果說你沒有語言基礎也可以做,無非是在別人或者其他工具上,如公司自研工具 qtp等。如果換一家公司呢?

8年測試開發經驗,開始兩年在公司自研工具上做接口自動化。自己萌生了想要自己寫一個接口自動化工具的想法。有了想法然後就去學習,各種自動化的思想,Python,參考各種大神的作品。寫了簡單的工具,現在想想還挺有意思。

後來由於工作需要寫一年Python,寫了一年Java。

後面接觸了robotframework 還是挺好用的,樓主可以瞭解下它的思想。後來主要就是寫一寫api供其他同學使用。

後面接觸了一些其他的框架如pytest。組織好層次結構,寫起來還是挺快的,沒有束縛,愛怎麼寫怎麼寫。

其實自動化測試工具大同小異。只要你思想到位。自動化化測試都是通的比如 關鍵字驅動, 數據驅動 ,結果校驗,前置後置等等。每個自動化工具或者測試框架都會有的。

如果有興趣交流可以私信我。

祝樓主成功



請叫我磚家


Python下的selenium和splinter模塊是可以完成瀏覽器自動化測試的.

splinter文檔如下:

  1. 英文文檔: http://splinter.readthedocs.io/en/latest/

  2. 中文文檔: http://splinter-docs-zh-cn.readthedocs.io/zh/latest/index.html

selenium文檔: http://selenium-python.readthedocs.io/ (英文文檔, 中文文檔暫未發現)

selenium

下面主要介紹以下selenium模塊:

在使用之前要錢安裝模塊, 使用python的pip命令安裝即可

首先需要創建瀏覽器的驅動對象, 使用其中的webdriver模塊

1.使用前需要導入:

from selenium import webdriver

2. 啟動瀏覽器並拿到瀏覽器對象

# 啟動火狐瀏覽器driver = webdriver.Firefox()# 啟動谷歌瀏覽器driver = webdriver.Chrome()# 啟動ie瀏覽器driver = webdriver.Ie()

3. 拿到瀏覽器對象後就可以對瀏覽器進行一系列操作了

瀏覽器對象有如下方法(給出部分):

  1. current_window_handle: 當前窗口句柄

  2. window_handles: 所有窗口句柄

  3. switch_to_window(handle): 切換窗口焦點

  4. title: 網頁標題

  5. page_source: 網頁源代碼

  6. save_screenshot(path): 將頁面截圖保存(路徑)

  7. close(): 關閉瀏覽器

  8. get(url): 發送get請求

  9. switch_to_alert(): 獲取頁面彈窗對象

  10. execute_script(js): 執行js語句

  11. forwared(): 前進

  12. back(): 後退

  13. add_cookie(cookie): 添加 cookie

  14. get_cookies(): 返回當前對話的cookies(字典)

  15. find_element_by_class_name(name): 根據class屬性查找標籤, 返回一個

  16. find_elements_by_class_name(name): 根據class屬性查找標籤, 返回所有

  17. find_element_by_id(id_): 根據id屬性查找標籤, 返回 WebElement 對象

  18. find_element_by_name(name): 根據name屬性查找標籤, 返回 WebElement 對象


  19. find_elements_by_name(name): 根據name屬性查找標籤, 返回所有

  20. find_element_by_tag_name(name): 根據標籤名查找標籤, 返回 WebElement 對象

  21. find_elements_by_tag_name(name): 根據標籤名查找標籤, 返回所有

其中的WebElement對象為網頁中的標籤對象, 方法大概如下(部分):

  1. click(): 點擊此標籤
  2. send_keys(*value): 模擬輸入元素,一些特殊的按鍵定義在Keys中(from selenium.webdriver.common.keys import Keys)
  3. clear(): 清除輸入內容
  4. submit(): 提交表單
  5. find_element_by_class_name(name): 根據class屬性查找標籤
  6. find_elements_by_class_name(name): 根據class屬性查找標籤, 返回所有
  7. find_element_by_id(id_): 根據id屬性查找標籤, 返回 WebElement 對象

  8. find_elements_by_id(id_):
  9. find_element_by_name(name): 根據name屬性查找標籤, 返回 WebElement 對象
  10. find_elements_by_name(name):
  11. find_element_by_tag_name(name): 根據標籤名查找標籤, 返回 WebElement 對象
  12. find_elements_by_tag_name(name):
  13. find_element_by_xpath(xpath): 根據 xpath 查找標籤, 返回 WebElement 對象
  14. find_elements_by_xpath(xpath):

以上僅給出部分方法, 具體使用可到文檔中查看('http://selenium-python.readthedocs.io/ ')

之後調用方法完成自己的需求即可, 將程序寫好後, 瀏覽器就可以按照程序進行自動化操作了

Chrome的驅動應該是要下載, 自行谷歌一下就好

使用selenium操控Chrome, 效果就像這樣(之前寫的一個爬花瓣圖片的程序):


菸草的香味


首先python是可以用來做接口自動化測試的,但是selenium好像並不支持,selenium是一款web端的UI自動化測試框架,並不能滿足做接口自動化測試。

我覺得要想利用python做接口自動化測試,可以考慮用python+requests來寫一套框架,python的requests模塊, 這個模塊是一個HTTP客戶端庫,編寫爬蟲和測試服務器響應數據時經常會用到。

下面給出一個requests的官方文檔,可以參考一下:

http://docs.python-requests.org/en/master/

至於如何來操作?

我認為可以有兩個方面來考慮

  1. python代碼能力強的可以用代碼寫一套框架,這個估計難度不是特別大。

  2. 也可以結合python+requests+robotframework,這個GUI的框架,可以參考我之前回答過的自動化測試的問題。

  3. 要是實在沒有思路寫的話,可以考慮看看開源的工具,postman。


非常不理智球迷


這個問題是一個偽問題,沒有對問題進行針對性的提問,如果你不是一個測試員或者技術員,請先去了解一下什麼是程序。

瞭解一下什麼時白盒測試什麼是黑盒測試。

有了基本的瞭解,估計你就不會提這個問題了。


分享到:


相關文章: