測試人員習慣於使用手工用例來執行測試任務,手工用例已經使用測試平台管理。
當前需要開展webui的自動化測試,本來的想法是在測試平台擴充套件ui測試的功能,但是在構思的時候,覺得它沒有直接編寫python指令碼來的便利。
所以後來使用python+selenium+pytest來實現webui的自動化測試。**一段時候後發現部分測試人員不知道哪些功能已經實現的webui自動化測試,讓他們自己去指令碼中找,顯然是不現實的。**
如果測試平台中的手工用例和指令碼可以對應起來,這樣當測試人員使用手工用例時,也就很容易知道該手工用例有沒有實現自動化了。
手工用例和自動化指令碼建立對應關係
pytest有很多種執行用例的方式,其中有一種用例路徑的執行方式。
比如一條用例的路徑是/testcase/test_case.py::testcase_類名::test_用例名稱,那麼直接可以使用命令(pytest /testcase/test_case.py::testcase_類名::test_用例名稱) 來執行。
如果將這個路徑新增到平台的手工用例中,那麼它們的對應關係就建立了,同時還可以觸發執行自動化用例。
在自動化工程中實現乙個收集所有自動化用例的web介面,通過該介面,測試平台可以給手工用例配置對應的自動化用例路徑,如下兩張圖
因為ui用例執行比較耗時,所以這裡就需要使用非同步執行了。可以使用訊息佇列(執行佇列和結果佇列)的方式,來實現非同步執行。
因為執行請求和執行結果,在兩個佇列中,所以需要使用乙個execid來給它們建立關係。也就是要在原來的執行命令中,新增乙個引數execid,例如pytest /testcase/test_case.py::testcase_類名::test_用例名稱 --execid 1234455。
這裡我在conftest.py檔案中實現了兩個pytest的鉤子函式pytest_addoption和pytest_collection_modifyitems,通過兩個鉤子函式,可以將命令中的execid儲存到config物件中,並提供給執行結果。
當用例執行完成後,使用鉤子函式pytest_report_teststatus(也是conftest.py檔案中實現),可以拿到執行結果(包括execid),並寫入到結果佇列,測試平台拿到結果後,就是可以形成一條完整的執行記錄,並在手工用例中展示。
記一次nginx解決跨域問題
關於跨域是什麼 產生跨域的條件等基礎概念,我就不在此記錄了。我們直接來看nginx解決跨域的方法。對於簡單請求新增響應頭 location 或者 http新增完成後,reload過載nginx配置檔案。可以在網路請求中驗證是否加入成功,如果上面方法不管用,那你就要看你的跨域請求是不是options了...
記一次BIND ISSUE解決過程
在ibm的大機測試環境下,編輯好的程式已經通過編譯,並且拷貝到了rnd的目錄中。但是用之前能夠正常bind其它db2程式的jcl去做rnd環境下的bind的時候,總是bind錯誤。通過檢視jcl的錯誤資訊,定位到如下的sql錯誤 sqlcode 206 sqlstate 42703 tokens t...
記第一次web測試
前程貸web端測試心得 在學習完測試的基本理論之後,第一次著手從頭到尾完成乙個測試專案。有很多不專業的地方,記錄一下。首先,本次測試開始階段的測試需求分析,我因為很多事情耽誤沒有仔細看需求文件,寫測試用例的時候,也只是根據自己使用網頁的經驗,編寫了一些測試用例,覆蓋面不完整。還有測試用例可能也不太規...