3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
1、Python的單元測試如何理解與實現?問題描述:學習瓶頸期.能理解單元測試的原因和簡單原理,但是由於各式各樣的原因(主要是英文差的很)所以不知道怎麼去完成,目前打算使用nose2不知道是不是可以得到一些幫助解決辦法:51Testing會員黃哥回復:1)首先要搞清楚單元是啥。2)單元測試的意義。3)利用測試套件,照著例子寫測試用例。4)講究一點,還得生成一個測試報告,發一個郵件通知一下。照著文檔寫~2、求適合Python基於數據驅動的測試工具推薦?解決辦法:51Testing會員孫景衛回復:請問測試對象是?python寫的模塊?還是要用Python寫測試工具?建議再詳細描述一下你的需求。用python的meta class和自省的機制很容易實現一套數據驅動框架的。3、Python做介面測試,如何帶上Cookie?問題描述:#引入需要的moduleimport http.client, urllib.parse,urllib.requestimport http.cookiejarimport http.cookiesimport re#創建請求參數params = urllib.parse.urlencode({'email':'XXXXXXX', 'password': 'XXXXX', 'origURL': '人人網 領先的實名制SNS社交網路。加入人人網,找到老同學,結識新朋友。','domain':'renren.com'})#創建請求頭headers = {"Content-type": "application/x-www-form-urlencoded; charset=UTF-8","Accept": "text/plain","Referer":"應屆生校招網 [即人人校招]-應屆生2013年校園招聘、宣講會,應屆生找工作職位","User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0"}#鏈接網站conn = http.client.HTTPConnection("人人網 領先的實名制SNS社交網路。加入人人網,找到老同學,結識新朋友。")#提交介面請求conn.request("POST", "/PLogin.do", params, headers)#獲取請求的響應response = conn.getresponse#列印響應的狀態碼,以字典列印出返回的頭部msgprint(response.status, response.reason,response.msg)dic=response.msg#關閉鏈接conn.close#生成一個http.cookiejar對象cj=http.cookiejar.CookieJar#新建一個openeropener=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))#植入openerurllib.request.install_opener(opener)#打開重定向的網址h=opener.open(L)h2=h.read.decode('utf-8')#列印所有的cookiefor item in cj:print(item.name,'=',item.value,'\n')if item.name=='xnsid':headers['xnsid']=item.valuertk=re.findall(r'\'\w+\'',str(h2))print(rtk[1][1:-1])params2={}params2['_rtk']=str(rtk[1][1:-2])params2=urllib.parse.urlencode(params2).encodeconn2=http.client.HTTPConnection('xiaozhao.renren.com')conn2.request('POST','/message/count',params2,headers)response2=conn2.getresponseprint(response2.status,response2.reason,response2.msg)print(response2.read.decode('utf-8'))conn2.close解決辦法:(1)51Testing會員雲層回復:如果你使用的http組件支持添加cookie,那最好如果沒有隻能通過header加一個名字為cookie的header,但這樣的缺點是會覆蓋原有的內部cookie一般做的比較成熟的http組件都是有獨立的cookie管理對象的(2)51Testing會員回復:介面測試推薦使用requests庫requests支持帶持久 Cookie 的會話s = requests.Sessions.post(url, headers=headers, data=params)就解決你的問題了4、Python如何寫關於抽象類的單元測試?問題描述:從abc中import了ABCMeta和abstractmethod,實現了一個抽象類,目前想用nose(目前僅僅是unittest)對這個類進行單元測試,不知道有沒有比較好的方式?(Python版本2.7的)在Stackoverflow上給了幾種方式:1、通過一個其他類實現抽象類方法測試:unit testing;2、構建特殊函數,提取方法創建新類:oop - python;Python中對抽象類測試有無必要?上述方式是否有效或者有無其他方式進行測試?解決方法:51Testing會員回復:已解決,raise NotImplementedError,通過一個子類來實例方法。算了,補充完整吧:1、一般來說抽象類是沒有實例化方法的,這個和單純的abstractmethod不同,abstractmethod會在調用的時候檢驗是否實現功能,所以如果想要測試抽象類中的抽象方法,需要子類繼承這個抽象類。2、繼承了以後調用方法單純的pass是看不出來效果的,raise的方法可以拋出異常,這樣可以通過捕獲異常進行測試。Nose中nose.tools提供了raises的裝飾器,在測試函數前添加raise的異常就可以檢驗到該抽象類是否被調用到。註:1、關於異常,NotImplementedError比較恰當,官方文檔有說明:exception NotImplementedErrorThis exception is derived from RuntimeError. In user defined base classes, abstract methods5、Mac OS 下如何安裝Python測試環境?問題描述:初學Python,跟著教程《Learn Python The Hard Way》做到習題46,通過pip安裝nose、virtualenv和distribute,顯示安裝成功,但之後執行nose相關命令都是顯示"-bash: nosetest: command not found",而執行項目骨架測試(tests和NAME目錄中包含__init__.py,tests下面也建了一個NAME_tests.py的文件),總是顯示 "No such file or directory"請問到底如何才能把nose、distribute和virtualenv安裝成功啊解決辦法:(1)51Testing會員黃哥回復:pip install nose后,如果在cmd下或 Linux 終端下 輸入 nosetests 提示"-bash: nosetest: command not found"這個說明你的nose還沒有安裝好。先按照下面圖片(2)51Testing會員小鐵匠回復:跟樓主一樣,在學習《Learn Python The Hard Way》配置環境的時候遇到各種問題,本人是mac環境,pip install 完之後 pip list nose安裝完成之後list中也有nose,import nose也是沒有問題的,但是"-bash: nosetest: command not found"。在這裡強力推薦virtualenv,優勢如下:1)在沒有許可權的情況下安裝各種套件(在MAC下被折磨得要死,各種ERROR)不同應用2)可以使用不同的套件版本,各個環境相對獨立,套件升級不影響其他應用最後完美解決樓主問題6、如何著手開始Python程序的測試驅動開發?51Testing會員kaelzhang回復:我用python做過生命遊戲的TDD練習,首先必然是選用一個測試框架,然後循環三步軍規:編寫用例,實現用例,重構7、Web測試(Java項目)選擇Ruby還是Python?問題描述:最近被公司安排做測試,其實本人非專職研發,但既然有這個機會也想多學點東西,現在打算學一門腳本語言希望幫助到我日後的工作。不知道該選Ruby還是Python,或者其他?青菜蘿蔔各有所愛,各種語言也有各自的長處,對於我來說,選擇的首要標準是最好能有一本比較系統的書/教程我好從中學習。解決辦法:51Testing會員回復:Robot Framework作為測試框架,Selenium 作為測試庫,如果是java項目,可以建議使用jython 作為測試基礎,方便與被測系統的交互。如果不是專職研發人員,我真誠的建議你不要把使用自動化測試作為測試工作的重點。你更應該學習的是測試領域的知識,自動化測試通常只能錦上添花,只有深刻領悟測試領域的知識才能雪中送炭。對於書籍來說,《軟體測試經驗與教訓》,《完美軟體 對軟體測試的各種幻想》是我讀過的軟體測試最好的書籍。探索性測試和啟發性測試策略 是我認為未來最有前途的軟體測試方向。8、為什麼目前招測試人員都要求會Python呢?解決辦法:(1)51Testing會員石頭哥回復:應該是大部分吧(我們公司就沒有這個要求 )!主要是腳本語言就那麼幾種。shell,ruby,perl,python,tcl等。但是對於公司來說,腳本語言最好統一(原因就不用說了)。據我所知,騰訊目前應該正在走統一的道路(選擇的正是python)。原因大概就是python的適用性更好或者內部用python的人最多吧!所謂沒有最好,只有最合適。至於python的優點,對於我這個還在用shell解決問題的測試人員來說,就真的沒有發言權了。根據個人接觸經驗來看,就是語法很清楚,也很嚴謹,這樣當多人一起維護的話,出錯的概率應該會低點。我目前的了解,Python並不是必須的,而是測試人員的加分項。因為Python是腳本語言,非常適合編寫「自動化測試腳本」,自動化測試可以一定程度上替代傳統的人工測試,提高一定時間內的測試覆蓋度,提高測試工作效率。我之前的公司,測試工程師會寫點腳本(但不是用Python),另一個測試工程師不會寫。所以同等時間下,前者的工作總是很快完成,而且不容易遺漏(這個最重要了)。這樣,企業當然更歡迎會Python的測試工程師。End.51Testing:專註於軟體測試領域,自主研發軟體測試工具,為客戶提供全球領先的軟體測試整體解決方案。

本文由yidianzixun提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦