⑴ python介面自動化之token登錄
前言
有些登錄不是用cookie來驗證的,是用token參數來判斷是否登錄。
token傳參有兩種一種是放在請求頭里,本質上是跟cookie是一樣的,只是換個單詞而已;另外一種是在url請求參數里,這種更直觀。
一、登錄返回token
1.如下圖的這個登錄,無cookies
2.但是登錄成功後有返回token
二、請求頭帶token
1.登錄成功後繼續操作其它頁面,發現post請求的請求頭,都會帶token參數
2.這種請求其實比cookie更簡單,直接把登錄後的token放到頭部就行
三、token關聯
1.用腳本實現登錄,獲取token參數,獲取後傳參到請求頭就可以了
2.如果登錄有驗證碼,前面的腳本登錄步驟就省略了,自己手動登錄後獲取token
import requests
header = { # 登錄抓包獲取的頭部
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
"Accept": " / ",
"Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
"Accept-Encoding": "gzip, deflate",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"X-Requested-With": "XMLHttpRequest",
"Content-Length": "423",
"Connection": "keep-alive"
}
body = {"key1": "value1",
"key2": "value2"} # 這里賬號密碼就是抓包的數據
s = requests.session()
login_url = " http://xxx.login " #自己找帶token網址
login_ret = s.post(login_url, headers=header, data=body)
token = login_ret.json()["token"]
post_url = " http://xxx "
header["token"] = token
header["Content-Length"]="9"
body1 = {
"key": "value"
}
post_ret = s.post(post_url, headers=header, data=body1)
print post_ret.content
⑵ python3實現自動化測試 [基於python語言實現自動化測試的研究]
[摘 要]自動化測試近年來的技術已經越來越成熟,在某些方面有著不可替代的作用,例如在性能測試,壓力測試中,自動化測試可以模擬成千上萬個用戶對目標程序進行測試。本文通過對大型實際項目的分析研究,分析針對某一產品的自動化測試框架。然後討論怎樣用python實現自動化測試。
[關鍵詞]測試技術手工測試自動化測試python腳本
[中圖分類號]TP3[文獻標識碼]A[文章編號]1007-9416(2010)03-0088-01
地添加測試用例,為測試用例提供公用函數,執行測試用例,發送測試結果等功能。
1 自動化測試的重要概念
檢查點(CheckPoint):將特定屬性的當前數據與期望數據進行比較的地方,用於判定被測試程序的功能是否正確。
成本收益比:並不是所有的測試都適合自動化測試,衡量一個用例是否適合自動化測試一個很重要的參考是國際上流行的自動化測試成本收益比,即是p=k*n/c1+c2。各個參數的意義下:
K=手工執行自動化測試案例所花費的時間成本。
N=自動化測試案例執行的次數
C1=花費在自動化測試前期的(時間成本+人力成本+金錢成本)
C2=花費在自動化測試後期的(時間成本+人力成本+金錢成本)
二八定律:1897年義大利經濟學家帕列托發現的二八定律在軟體行業同樣適用,而可以給我們很多啟發,指導我們的軟體開發和測試。80%的用戶經常使用的是20%的軟體功能。在軟體測試中,80%的bug是集中在20%的軟體模塊中,對於自動化測試來說,找出這20%的測試用例是至關重要的。
2 自動化測試的執行步驟
每次腳本都是從一個統一的文件開始執行的,就是如上的Start.py。這樣做的好處是可以把每個腳本都需要處理的工作放到一個文件中去執行,例如收集一些配置信息,讀取命令行參數。以這樣統一的處理風格為腳本的可讀性提供了保證,也為簡化了測試腳本的編寫,不用每次都要處理一些基本的事務。
啟動文件Start.py首先會讀取命行參數,如pthon Start.py -s FileMenu.suite -t FileNew
通過python的內置函數sys.argv就可以讀取命令行參數吵肢,非常方便。讀取到命令行參數後,在Start.py內部可以判斷命令行的格式是否符合我們的格式,如測試人員不小心把-s 寫成了-z 這樣就要退出測試執行。
如果輸入的格式是正確的,Start.py 負責在特定的目錄下尋找特定的Suite文件和Testcase。Suite文件和Testcase的格式會在下邊的具體實例中作介紹。
找到特定的Testcase後就可以執行測試用例,根據檢查點的通過或失敗發送測試報告,該報告會以網頁的形式顯示,方便測試人員和開發人員的查找調試。
3 用python實現GUI測試
圖形用戶界面(GUI) 就是使用圖象,輸入的文字,帶圖標的計算機界面,取而代之了許多鍵盤的功能。GUI可以讓用戶通過圖標和滑鼠與計算機進行交互,而不是單調地在命令行中輸入文本進行操作。設計良好的圖形用戶界面可以使用戶從命令中解放出來。
GUI測試主要包括兩個方面:一是純GUI測試,主要關注應用程序上GUI組件是否符合規范或是用戶的使用習慣,二是功能測試,主要是檢驗和驗證系統是否實現了系統的業務需求,旨在驗證系統的業務實現能力。但事實上兩者不是完全獨立的,一方面GUI的測試必定要觸發功能,另一方面,功能測試也一定要通過GUI將搜碰洞事件傳遞給後台服務。
3.1 編寫測試用例
ID 466540 :: Test CaseGeneral UI File Menu
Version 2
世枯PriorityP1
Summary:Verify File New window
Steps
SelectFile -> New
Expected Results
1. The VM creation window should open.
Keywords: i18n
Requirements : None
Created on 09/22/2008 20:58:23by wangw
Last modified on04/17/2009 00:20:53by marian
3.2 測試用例分析
以上是一個完整測試用例, 該測試用例包括:
測試ID 466540 , 有了測試ID就可以在測試人員提交bug後,QA或開發人員通過ID找到這個測試用例。還有一個更大的用處就是,在自動個腳本生成測試報告後,可以根據測試ID把該測試用例顯示在測試報告中,以供測試人員和開發人員調試。
測試名稱,根據測試名稱應該可以很快了解測試用例的內容,所以好的測試名稱也是非常重要的。
測試用例的版本(Version)。
測試優先順序(Priority),測試優先順序也是一個很重要的參數,因為大型項目都要有很多測試用例要執行。只有明確測試優先順序才能確保重要的測試用例得以及時進行,保證軟體質量。
測試用例概述(summary),幫助測試執行人員了解該測試用例的用測的功能。
測試步驟,描述測試人員或是自動化腳本每一步是怎樣操作的,例如本例告訴測試人員選擇菜單Fie,然後選擇菜單項New。
預期結果(Expected Results),說明經過以上測試步驟,期望程序運行出現的結果。
4 結語
本文在明確軟體測試理論的基礎上,對自動化測試做了重點闡述,通過實際項目的自動化測試分析,有些測試用例特別適合用自動化測試。例如GUI測試中,用些是要驗證界面元素是否顯示正常。如果是腳本就可以准確無誤地很快驗證完畢,而用人工驗證不僅容易出錯而且費時間。由於時間和硬體條件有限,本論文規避了許多問題,所以仍有許多工作需要完成。例如:做好腳本的復用,使測試腳本不斷積累。及研究怎樣在測試工具和自己搭建框架中尋找平衡等。
[參考文獻]
[1] 張克東.《軟體工程與軟體測試自動化教程》.北京:電子工業出版社,2002.
[2] 朱菊,王志堅,楊雪.《基於數據驅動的軟體自動化測試框架》[J]計算機技術測試與發展,2006.
[3] 馬瑞芳,王會燃.《計算機軟體測試方法的研究》.小型微型計算機系統,2003.
[4] 朱鴻,金凌紫.《軟體質量保障和測試》[M].北京:電子科學出版社,1997.
本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文
⑶ 登錄linux伺服器時設置了交互菜單選擇你要登錄的系統,如何使用python編程實現自動化選擇要登錄的系統
1.程序怎麼判斷你期望的系統是哪個?
2.python可以實現自動登陸
3.難點在於,第一點
4.你准備使用什麼技術實現?
5.機器學習?人臉檢測?動作跟蹤?and so on ?
6.希望可以幫助,請採納,謝謝!
⑷ 怎麼用python做自動化測試
這里以web自動化測試為例,簡單介紹一下如何使用python進行web自動化測試,主要用到selenium這個框架,實驗環境win10+python3.6,主要內容如下:
1.首先,安裝selenium框架,這個直接在cmd窗口輸入命令「pipinstallselenium」就行,如下,安裝非常快:
2.安裝完成後,還需要安裝瀏覽器驅動程序,不然直接運行程序會報錯,以谷歌瀏覽器chrome為例,需要下載chromedriver驅動程序,如下,這里chromedriver的版本必須要與自己平台瀏覽器的版本匹配:
下載完成後,是一個zip壓縮包,裡面就一個chromedriver.exe文件,這里需要將這個文件復制到python安裝目錄下,如下:
3.最後,我們就可以進行selenium框架測試了,測試代碼如下,非常簡單,創建一個webdriver,如果能正常打開對應網頁,則說明selenium安裝成功:
之後就可以直接定位相關元攜余素,進行web自動化測試了,主要方法如下(共有8種),辯洞滾分別是id、name、classname、tagname、linktext、partiallinktext、xpath和cssselector,這里可以自行測試,相關資料非常豐富:
至此,我們就完成了pythonweb自動化測試框架selenium的安裝和簡單使用。總的來說,整個過程非常簡單,只要你有一定的python基礎,熟悉一下上面的安裝過程,很快就能搭建好本地selenium自動化測試框架,網上也顫芹有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
⑸ python+selenium自動化寫登錄腳本時,彈出的第三方登錄頁面該如何定位元素
importtime
defBai():
try:
browser=webdriver.Chrome()
browser.get(url)
wait=WebDriverWait(browser,10)
#定位網路登陸按鈕
browser.find_element_by_xpath('//*[@id="u1"]/a[7]').click()
time.sleep(5)
#qq登陸
browser.find_element_by_xpath('//*[@id="pass_phoenix_btn"]/ul/li[1]/a').click()
#切換至qq登陸窗口
time.sleep(5)
browser.switch_to.window(browser.window_handles[1])
#切換至賬戶密碼框
browser.switch_to.frame('ptlogin_iframe')
#賬戶登陸按鈕
browser.find_element_by_xpath('//*[@id="switcher_plogin"]').click()
user=browser.find_element_by_id('u')
user.send_keys(賬戶)
password=browser.find_element_by_id('p')
password.send_keys(密碼)
browser.find_element_by_id('login_button').click()
browser.switch_to.window(browser.window_handles[0])
finally:
browser.close()
Bai()
⑹ python+selenium怎麼讀取csv中的數據進行列表循環登錄自動化參數登錄
為了參數化csv文件中的數據,需要做到兩點:
一是逐行讀取:用到列表
二是根據列名獲取對應單元格的值:用到字典
import csv
bid_info = csv.DictReader(open('bid_info.csv','r'))
dict_data = []
for lines in bid_info:
if bid_info.line_num == 1:
continue
else:
dict_data.append(lines)
row_num = len(dict_data)
# print('this is all the data---' + str(dict))
#循環讀取每一行
i = 0
while(i < row_num):
print('this is'+str(i)+'row----'+ str(dict_data[i]))
print(dict_data[i]['a'])
i += 1
⑺ 想要用python3做個軟體對網頁自動化操作,需要搭建什麼環境,如何實現
只用python就行了啊。vs和pycharm都算是編輯器沒什麼關系啊,就是用記事本編輯也行哦。那就用pycharm吧,大家都吹噓它好用。
就是用python的urllib模塊請求網頁就可以了。
登錄就是post數據,然後獲得cookie(可能還有一下其他的東西),帶著它就可以做一些評論。
評論就是根據按鈕找到相關的網頁鏈接,向它post/get數據。
評論採集就是請求相關的網頁,獲得評論的數據,可能是html或者json之類的,然後用beautifulsoup或者json分析,獲得格式化後的數據。
以前用Python做過一個空間的自動點贊、自動回復說說留言、獲取留言的程序。
只要就是分析鏈接和js腳本費點時間。其他地方都簡單。
⑻ 怎樣用python實現網頁自動登錄
可以在cmd下通過命令安裝selenium模塊:pip install selenium 或者 easy_install selenium。
分析網頁控制項id:
# -*- coding: utf-8 -*-
import os
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
iedriver = "C:Program FilesInternet ExplorerIEDriverServer.exe"
os.environ["webdriver.ie.driver"] = iedriver #調用IE瀏覽器
browser = webdriver.Ie(iedriver)
browser.get('http://weibo.com/') #需要打開的網址
user = browser.find_element_by_id("loginname") #審查元素username的id
user.send_keys("11111") #輸入賬號
password = browser.find_element_by_name("password") #審查元素password的name
password.send_keys("1234") #輸入密碼
password.send_keys(Keys.RETURN) #實現自動點擊登陸
print('登陸成功')