用python做自動化測試--對伺服器端的自動化測試(3)-更多http client執行個體,pythonclient
上一篇中只是實現了一個很簡單的http client功能,request還提供了keep alive, SSL, 多檔案上傳,cookie 管理功能,http requests頭管理等豐富的功能,只要你瀏覽器實現的功能,requests裡面都支援。
#!/usr/bin/env python#coding=utf-8import requestsdef login_douban(username, passwd): post_data={'source':'index_nav','form_email':username,'form_password':passwd} request_headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0"} response=requests.post("http://www.douban.com/accounts/login", data=post_data,headers=request_headers) if u"小王子" in response.text: print "Login successful" return response else: print "Login failed" print response.text return Falsedef say_something(login_cookie): post_data={'ck':'ynNl','rev_title':u'發福利','rev_text':u'樓主是標題黨','rev_submit':u'好了,發言'} response=requests.post("http://www.douban.com/group/beijing/new_topic", data=post_data,cookies=login_cookie) if response.url=="http://www.douban.com/group/beijing/": print "post new content successfully" return True else: print "Post content fail" return Falselogin_response=login_douban(your_usename,your_passwd)say_something(login_response.cookies)
request_headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0"}, 這一行的目的是為了類比這個請求是FireFox發出來的,很多網站為了屏蔽爬蟲,會通過User-Agent這個欄位來屏蔽,當然現在大型網站應該會用更進階的手段來屏蔽爬蟲,如果不設定這個User-Agent, requests發出去的請求,User-Agent的值是python-requests/2.3.0 CPython/2.7.3 Windows/7\r\n。
say_something這個函數沒測試了,剛才我頻繁的調試,豆瓣要我輸入登陸驗證碼了,有問題這裡留言,我過段時間在調試。
關於cookie, session管理這塊,如果是在同一個函數裡面,request自動管理了session,不需要額外的處理,
session = requests.Session()session.post("http://www.douban.com/accounts/login", data=post_data,headers=request_headers)session.post("http://www.douban.com/group/beijing/new_topic", data=post_data)
這樣就可以發帖成功。
看到這裡大家一定會想到selenium,是不是和requests一樣的? requests更擅長於無UI介面測試,selenium更擅長於有UI的web測試。
初學Python,想做手機自動化測試指令碼,想瞭解幾個問題
1、手機自動化測試Python能獨立完成嗎?可以。
2、想要學的話,看哪本教程會好些?首先學習自動化測試,然後學習python,然後結合執行個體學習。可以參考wenku.baidu.com/...1.html
3、主要要學習的模組內容或者方向是哪些?
Python的世界有一個開源架構Splinter,可以非常棒的類比瀏覽器的行為(從某種意義上也可以說是人的訪問點擊行為)。Splinter提供了豐富的API,可以擷取頁面的資訊,以判斷當前的行為所產生的結果
4、還有懂這行補充給我的,我另加分。。多項
多學習測試的各方面知識,python只是工具。測試的理論知識很重要。
想學習web自動化測試,ruby?python?javascript?各位大俠推薦下web的自動化語言指令碼語言,說明理由哈
web自動化測試,按照主流工具來分的話:
商業工具:
QTP所用語言是vbscript
開源:
selenium支援ruby和python
ruby還有watir,python有PAMIE,但watir比PAMIE更好。
具體學什麼,還要看大環境:
公司用什麼做工具做測試就學什麼唄
如果找工作,那就去求職網站搜“測試 ruby”和“測試 python”,那個職位多就學那個,哈哈
另:做web前端測試,javascript是必修了,多多少少都要會點~