精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Tep集成 HttpRunner 與 Flask 實現開箱即用

開發 前端
剛開始只是我用來調試代碼的,等到把Mock寫完以后,想到可能大家也需要調試代碼,就把它做到tep里面了,并且附帶了測試用例的示例代碼,安裝完以后就能一鍵運行,開箱即用,美滋滋。歸根結底,都是為了把tep做大做強。

 

大家好,我是剛哥。

趁著元旦假期最后一天,有著大把時間,奔著把tep做大做強的目標,好好學習了一波。在開始正文之前,先回答可能會問到的兩個問題。第一個問題是為什么要集成HttpRunner?因為我最近在思考如何給tep做分層設計,參考了我司現有的接口自動化平臺,它的設計是每個用例有很多測試步驟,可以針對用例設置預設變量,然后在測試步驟中引用。正當我準備自己開發類似功能時,想到了HttpRunner,我記得HttpRunner第3版是建議直接編寫pytest代碼而非以前的ymal或json文件了。大有所獲,HttpRunner正是以這種方式編寫的代碼,而且和pytest有很好的結合,很符合tep要集成的第三方包的希望。第二個問題是為什么要集成Flask?剛開始只是我用來調試代碼的,等到把Mock寫完以后,想到可能大家也需要調試代碼,就把它做到tep里面了,并且附帶了測試用例的示例代碼,安裝完以后就能一鍵運行,開箱即用,美滋滋。歸根結底,都是為了把tep做大做強。

tep0.9.3正式發布

要體驗HttpRunner和Flask,需要先安裝或升級到tep0.9.3。

安裝:

  1. pip install tep 

升級:

  1. pip install -U tep 

或者指定版本:

  1. pip install tep==0.9.3 

安裝tep時會順帶安裝HttpRunner和Flask,安裝完以后就可以執行命令初始化項目:

  1. tep startproject demo093 

輸出:

  1. D:\PycharmProjects>tep startproject demo093 
  2. 2022-01-03 16:07:31.929 | INFO     | tep.scaffold:create_scaffold:53 - Create new project: demo093 
  3. Project root dir: D:\PycharmProjects\demo093 
  4.  
  5. Created folder: demo093 
  6. Created folder: demo093\fixtures 
  7. Created folder: demo093\tests 
  8. Created folder: demo093\files 
  9. Created folder: demo093\reports 
  10. Created folder: demo093\utils 
  11. Created file: demo093\.gitignore 
  12. Created file: demo093\conf.yaml 
  13. Created file: demo093\conftest.py 
  14. Created file: demo093\pytest.ini 
  15. Created file: demo093\fixtures\__init__.py 
  16. Created file: demo093\fixtures\fixture_admin.py 
  17. Created file: demo093\fixtures\fixture_env_vars.py 
  18. Created file: demo093\fixtures\fixture_login.py 
  19. Created file: demo093\fixtures\fixture_your_name.py 
  20. Created file: demo093\tests\__init__.py 
  21. Created file: demo093\tests\test_login.py 
  22. Created file: demo093\tests\test_post.py 
  23. Created file: demo093\tests\test_mysql.py 
  24. Created file: demo093\tests\test_request.py 
  25. Created file: demo093\tests\test_login_pay.py 
  26. Created file: demo093\tests\test_login_pay_httprunner.py 
  27. Created file: demo093\utils\__init__.py 
  28. Created file: demo093\utils\flask_mock_api.py 
  • 修改了fixture_env_vars.py里面的domain為http://127.0.0.1:5000,這是Flask啟動后的默認地址。
  • 修改了fixture_login.py里面的登錄url和username,跟Flask的Mock對應。
  • 新增了utils\flask_mock_api.py,直接啟動Mock服務。
  • 新增了tests\test_login_pay.py,用例數據一體開發模式,登錄到下單流程的示例代碼,可以一鍵運行成功。
  • 新增了tests\test_login_pay_httprunner.py,HttpRunner開發模式,登錄到下單流程的示例代碼,可以一鍵運行成功。

新版README.md

之前tep的README是全英文的,這次我也決定不裝了,改成中文 ,豐富了內容,大家可以對tep有個全新和全面的了解啦。以下是全文:

tep

tep是Try Easy Pytest的首字母縮寫,是一款基于pytest測試框架的測試工具,集成了各種實用的第三方包和優秀的自動化測試設計思想,幫你快速實現自動化項目落地。

安裝

支持Python3.6以上,推薦Python3.8以上。

標準安裝:

  1. $ pip install tep 

國內鏡像:

  1. $ pip --default-timeout=600 install -i https://pypi.tuna.tsinghua.edu.cn/simple tep 

檢查安裝成功:

  1. $ tep -V  # 或者 tep --version 
  2. 0.2.3 

快速創建項目

tep提供了腳手架,預置了項目結構和代碼,打開cmd,使用startproject命令快速創建項目:

  1. tep startproject project_name 

并且提供了-venv參數,在項目初始化時,可以同時創建一個虛擬環境(推薦):

  1. tep startproject project_name -venv 

輸出測試報告

tep提供了--tep-reports參數來生成allure測試報告:

  1. pytest  --tep-reports 

報告文件存放在根目錄的reports/中。

Mock服務

tep自帶了一個Flask應用(utils/flask_mock_api.py),提供了登錄到下單流程的5個接口,啟動后即可一鍵運行示例中的測試用例。

三種開發模式

tep兼容三種開發模式:用例數據一體(適合新手)、用例數據分離(適合老手)、HttpRunner(新老皆宜)。

①用例數據一體,示例代碼如下所示:

  1. def test(env_vars, login): 
  2.     # 搜索商品 
  3.     response = request( 
  4.         "get"
  5.         url=env_vars.domain + "/searchSku"
  6.         headers={"token": login.token}, 
  7.         params={"skuName""電子書"
  8.     ) 
  9.     sku_id = jmespath.search("skuId", response.json()) 
  10.     sku_price = jmespath.search("price", response.json()) 
  11.     assert response.status_code < 400 
  12.  
  13.     # 添加購物車 
  14.     sku_num = 3 
  15.     response = request( 
  16.         "post"
  17.         url=env_vars.domain + "/addCart"
  18.         headers={"token": login.token}, 
  19.         json={"skuId": sku_id, "skuNum": sku_num} 
  20.     ) 
  21.     total_price = jmespath.search("totalPrice", response.json()) 
  22.     assert response.status_code < 400 
  23.  
  24.     # 下單 
  25.     response = request( 
  26.         "post"
  27.         url=env_vars.domain + "/order"
  28.         headers={"token": login.token}, 
  29.         json={"skuId": sku_id, "price": sku_price, "skuNum": sku_num, "totalPrice": total_price} 
  30.     ) 
  31.     order_id = jmespath.search("orderId", response.json()) 
  32.     assert response.status_code < 400 
  33.  
  34.     # 支付 
  35.     response = request( 
  36.         "post"
  37.         url=env_vars.domain + "/pay"
  38.         headers={"token": login.token}, 
  39.         json={"orderId": order_id, "payAmount""6.9"
  40.     ) 
  41.     assert response.status_code < 400 
  42.     assert response.json()["success"] == "true" 

更多內容請參考《如何使用teprunner測試平臺編寫從登錄到下單的大流程接口自動化用例》

②用例數據分離

開發中,敬請期待...

③HttpRunner,示例代碼如下所示:

  1. from httprunner import HttpRunner, Config, Step, RunRequest 
  2.  
  3.  
  4. class TestLoginPay(HttpRunner): 
  5.     config = ( 
  6.         Config("登錄到下單流程"
  7.             .variables( 
  8.             **{ 
  9.                 "skuNum""3" 
  10.             } 
  11.         ) 
  12.             .base_url("http://127.0.0.1:5000"
  13.     ) 
  14.  
  15.     teststeps = [ 
  16.         Step( 
  17.             RunRequest("登錄"
  18.                 .post("/login"
  19.                 .with_headers(**{"Content-Type""application/json"}) 
  20.                 .with_json({"username""dongfanger""password""123456"}) 
  21.                 .extract() 
  22.                 .with_jmespath("body.token""token"
  23.                 .validate() 
  24.                 .assert_equal("status_code", 200) 
  25.         ), 
  26.         Step( 
  27.             RunRequest("搜索商品"
  28.                 .get("searchSku?skuName=電子書"
  29.                 .with_headers(**{"token""$token"}) 
  30.                 .extract() 
  31.                 .with_jmespath("body.skuId""skuId"
  32.                 .with_jmespath("body.price""skuPrice"
  33.                 .validate() 
  34.                 .assert_equal("status_code", 200) 
  35.         ), 
  36.         Step( 
  37.             RunRequest("添加購物車"
  38.                 .post("/addCart"
  39.                 .with_headers(**{"Content-Type""application/json"
  40.                                  "token""$token"}) 
  41.                 .with_json({"skuId""$skuId""skuNum""$skuNum"}) 
  42.                 .extract() 
  43.                 .with_jmespath("body.totalPrice""totalPrice"
  44.                 .validate() 
  45.                 .assert_equal("status_code", 200) 
  46.         ), 
  47.         Step( 
  48.             RunRequest("下單"
  49.                 .post("/order"
  50.                 .with_headers(**{"Content-Type""application/json"
  51.                                  "token""$token"}) 
  52.                 .with_json({"skuId""$skuId""price""$skuPrice""skuNum""$skuNum""totalPrice""$totalPrice"}) 
  53.                 .extract() 
  54.                 .with_jmespath("body.orderId""orderId"
  55.                 .validate() 
  56.                 .assert_equal("status_code", 200) 
  57.         ), 
  58.         Step( 
  59.             RunRequest("支付"
  60.                 .post("/pay"
  61.                 .with_headers(**{"Content-Type""application/json"
  62.                                  "token""$token"}) 
  63.                 .with_json({"orderId""$orderId""payAmount""6.9"}) 
  64.                 .validate() 
  65.                 .assert_equal("status_code", 200) 
  66.                 .assert_equal("body.success""true"
  67.         ), 
  68.     ] 

用戶手冊

https://dongfanger.gitee.io/blog/chapters/tep.html

 

責任編輯:武曉燕 來源: 測試開發剛哥Python
相關推薦

2021-08-31 15:53:48

Nuxt 開箱服務

2021-09-01 17:43:32

StreamNativ開源

2023-01-15 20:28:32

前端圖片壓縮

2023-03-08 21:25:58

開源工具庫開箱

2023-11-04 12:43:44

前端圖片參數

2022-08-08 08:29:55

圖片壓縮前端互聯網

2021-09-26 05:41:47

基礎設施連接無線技術網絡

2017-01-09 13:21:24

達沃超融合

2013-11-01 09:37:19

Android系統架構工具

2025-07-10 00:00:05

開箱ApacheHertzbeat

2025-05-15 08:35:00

2021-09-28 09:30:18

uni-appVue 3.0uniCloud

2023-01-29 07:49:57

2022-08-02 09:01:55

后臺管理模版

2022-05-19 15:10:03

英特爾TensorFlow

2022-01-05 09:58:59

鴻蒙HarmonyOS應用

2015-06-30 09:49:19

管理平臺開源KVM

2023-04-04 10:09:09

2021-04-22 10:28:52

開發技能代碼
點贊
收藏

51CTO技術棧公眾號

91农村精品一区二区在线| 欧美国产精品| 欧美性受xxxx| 一区二区日本伦理| av综合在线观看| 黄色亚洲精品| 亚洲欧美综合图区| 国内国产精品天干天干| 久久亚洲导航| 久久精品亚洲国产奇米99| 国产精品视频资源| 久久亚洲国产成人精品性色| 色吊丝一区二区| 欧美视频第二页| 人妻夜夜添夜夜无码av| 黄上黄在线观看| 国产成人在线视频网站| 8090成年在线看片午夜| 亚洲人做受高潮| 欧美精品国产白浆久久久久| 欧美老年两性高潮| ww国产内射精品后入国产| 免费黄网在线观看| 久久久蜜桃精品| 91嫩草在线视频| 天码人妻一区二区三区在线看| 99久久亚洲精品蜜臀| 亚洲精品国产精品国自产在线| 艹b视频在线观看| 黄色漫画在线免费看| 亚洲另类在线视频| 久久99欧美| 精品久久在线观看| 蜜桃视频一区二区三区在线观看| 国产69精品久久久久99| 国产美女久久久久久| 免费欧美激情| 亚洲国产欧美一区二区丝袜黑人| 在线播放免费视频| 日韩av超清在线观看| 亚洲国产精品久久久久秋霞影院 | 91丨九色丨国产丨porny| 91精品国产综合久久男男| 人人草在线观看| 99亚洲精品| 久久久久久久97| 国产天堂av在线| 日韩av二区| 亚洲欧美日本精品| 日b视频在线观看| 亚洲日本va| 日韩一区二区三区视频| 欧美日韩中文不卡| www.久久.com| 欧美色图第一页| 成人羞羞国产免费网站| 91吃瓜在线观看| 亚洲福利一区二区| 男人天堂手机在线视频| 欧美hdxxx| 亚洲综合成人在线视频| 波多野结衣与黑人| 天堂av中文在线| 亚洲一区二区三区三| 欧美黄色免费网址| 丁香花在线电影小说观看| 亚洲一二三四区不卡| 国产片侵犯亲女视频播放| 国语对白在线刺激| 欧美日韩视频免费播放| av免费观看网| 性欧美gay| 欧美又粗又大又爽| 欧美在线aaa| 99热这里有精品| 欧美一区二区三区免费大片 | 成人午夜私人影院| 国产亚洲福利社区| 青青国产在线| 中文字幕成人网| 亚洲欧美国产精品桃花| 黄av在线播放| 亚洲综合视频网| 日韩av三级在线| www成人在线视频| 欧美日韩久久久久久| www.com污| 99香蕉久久| 亚洲精品中文字幕女同| 欧美老女人性生活视频| 亚洲最新色图| 91成人在线观看国产| 美女又爽又黄免费视频| 免费av成人在线| 97免费高清电视剧观看| 五月激情丁香婷婷| 中文字幕不卡在线| 欧美在线观看视频免费| 超级碰碰久久| 欧美卡1卡2卡| 欧美熟妇精品黑人巨大一二三区| 成人亚洲一区二区| 欧美黑人性生活视频| 亚洲欧美日韩激情| 国产精品一二三区在线| 欧美精品二区三区四区免费看视频 | 欧美浪妇xxxx高跟鞋交| 日韩精品视频一区二区| 久久亚洲国产| 456国产精品| 国产伦理吴梦梦伦理| 91在线高清观看| 在线丝袜欧美日韩制服| 欧美aaaaa性bbbbb小妇| 91麻豆精品国产无毒不卡在线观看| 中文字幕99页| 国产精品国产三级国产在线观看| 高清欧美性猛交xxxx| 一级黄色片在线| wwwwxxxxx欧美| 国产精品8888| 国产成人免费精品| 精品久久99ma| 欧美视频www| 日欧美一区二区| 精品无码久久久久国产| 91福利国产在线观看菠萝蜜| 在线观看av一区| 大尺度在线观看| 性欧美69xoxoxoxo| 国产精品免费在线免费| 欧美孕妇孕交| 激情成人在线视频| 亚洲熟妇一区二区| 综合激情视频| 91久久精品国产91久久| av网站在线免费播放| 日韩欧美亚洲综合| 亚洲自拍偷拍精品| 欧美在线免费一级片| 国产精品一区二区性色av| 日本免费一区二区三区最新| 艳妇臀荡乳欲伦亚洲一区| 日本77777| 欧美激情偷拍自拍| 国产精品av免费在线观看| 欧美中文在线| 色八戒一区二区三区| 一本色道综合久久欧美日韩精品 | 国产日韩av一区二区| 国产黄色一级网站| 天堂俺去俺来也www久久婷婷| 欧美精品久久久久a| av免费观看在线| 亚洲日本在线天堂| 两性午夜免费视频| 欧美/亚洲一区| 97神马电影| 国产精品186在线观看在线播放| 日韩欧美一区二区视频| 青青草原免费观看| 国产99精品国产| 欧美视频在线观看视频| 精品自拍偷拍| 欧美一级大片在线观看| 日本一级在线观看| 欧美最猛黑人xxxxx猛交| 欧美黄色一级生活片| 美女mm1313爽爽久久久蜜臀| youjizz.com亚洲| 精品中文在线| 久久久亚洲福利精品午夜| 少妇荡乳情欲办公室456视频| 性欧美疯狂xxxxbbbb| 日本丰满少妇裸体自慰 | 亚洲欧洲日韩一区二区三区| 日本人69视频| 欧美日韩亚洲一区| 精品伊人久久大线蕉色首页| 成人直播视频| www.亚洲男人天堂| 亚洲AV无码精品国产| 亚洲6080在线| 久久久久久久久久久久久久久| 男男视频亚洲欧美| 肉大捧一出免费观看网站在线播放 | 国产精品视频网站| 菠萝蜜视频国产在线播放| 亚洲а∨天堂久久精品9966| 久久亚洲天堂网| 国产精品日日摸夜夜摸av| 一级淫片在线观看| 亚洲激情av| 日韩久久在线| 亚洲一区电影| 日韩av片免费在线观看| 黄色网址在线免费观看| 亚洲国产中文字幕久久网| 最近中文字幕免费在线观看| 亚洲乱码国产乱码精品精98午夜 | av综合在线观看| 欧美色视频日本版| 波兰性xxxxx极品hd| 成人午夜av在线| 一本岛在线视频| 激情自拍一区| 一本久道久久综合狠狠爱亚洲精品| 日本伊人久久| 国产精品夫妻激情| 国产黄色大片在线观看| 色婷婷**av毛片一区| 污污视频在线免费看| 欧美精品久久久久久久久老牛影院| 日产精品久久久久| 日韩一区日韩二区| 91视频在线网站| 懂色一区二区三区免费观看| 香蕉视频禁止18| 一本一道久久综合狠狠老精东影业| 中文字幕一区二区三区在线乱码| 影视先锋久久| 国产精品一区二| av日韩一区| 国产精品第1页| 神马久久午夜| 国外成人在线视频| 亚洲性图自拍| 日韩视频免费大全中文字幕| 国产午夜视频在线观看| 日韩av中文字幕在线播放| 精品人妻少妇AV无码专区| 精品视频在线免费| 久久精品五月天| 欧美日韩精品中文字幕| 国产精品 欧美 日韩| 亚洲男女毛片无遮挡| 欧美a级片免费看| 国产欧美日韩综合| 亚洲自拍偷拍图| 久久久欧美精品sm网站| 一出一进一爽一粗一大视频| 成人午夜免费电影| 女王人厕视频2ⅴk| 韩国精品在线观看| 亚洲精品视频三区| 经典三级在线一区| 最新天堂在线视频| 久久精品72免费观看| 视色视频在线观看| 蜜桃精品视频在线| 日本肉体xxxx裸体xxx免费| 三级欧美韩日大片在线看| 国产性xxxx18免费观看视频| 性色一区二区三区| 东京热加勒比无码少妇| 亚洲综合另类| 欧美成人免费高清视频| 日韩av一区二区三区四区| 北条麻妃在线视频| 男人操女人的视频在线观看欧美 | 国产精品suv一区二区69| 亚洲影院免费观看| 国产网址在线观看| 午夜日韩在线电影| 日本va欧美va国产激情| 欧美特黄级在线| 国产一区二区视频网站| 在线精品亚洲一区二区不卡| 天天干天天插天天射| 欧美日韩一区二区三区四区| 国产一区二区三区视频免费观看| 91麻豆精品久久久久蜜臀 | 亚洲国产91色在线| 日本高清中文字幕二区在线| 亚洲欧美国产日韩天堂区| 成人影视在线播放| 久久亚洲精品成人| 国产色婷婷在线| 日本精品一区二区三区在线播放视频 | 91sa在线看| 日韩经典一区| 亚洲伊人一本大道中文字幕| 国产精品网站在线看| 欧美精品亚洲精品| 99国产**精品****| av在线com| 久久久久综合| 国产精品探花在线播放| 91香蕉视频黄| 国产suv精品一区二区68| 亚洲一二三专区| 91视频久久久| 日韩欧美亚洲一区二区| 亚洲av成人精品毛片| 色老头一区二区三区在线观看| 18视频在线观看网站| 欧美在线性爱视频| 成人污版视频| 免费国产一区| 欧美 日韩 国产精品免费观看| 日韩精品视频久久| 国产在线麻豆精品观看| 女尊高h男高潮呻吟| 国产精品伦一区二区三级视频| 国产无套内射又大又猛又粗又爽| 在线观看日韩高清av| 丰满人妻av一区二区三区| 亚洲最新中文字幕| 97超碰在线免费| 成人久久久久爱| 欧美精品momsxxx| www.男人天堂网| 久久精品国产亚洲aⅴ| 国模无码视频一区| 亚洲人成网站精品片在线观看 | 欧美日韩国产中文| 亚洲区小说区图片区| 精品少妇v888av| 成人国产一区| 久久久久久久久久久一区| 亚洲欧美亚洲| 国产三级生活片| 久久精品夜色噜噜亚洲aⅴ| 国产午夜精品无码| 日韩亚洲欧美高清| 欧美激情黑人| 国产精品欧美一区二区| 国产免费av一区二区三区| 国产精品成人久久电影| 国产精品一区免费在线观看| 女人黄色一级片| 在线观看免费视频综合| 免费看男男www网站入口在线| 性色av一区二区三区| 97久久亚洲| 久久男人资源站| 国产激情一区二区三区| 欧美在线视频第一页| 欧美日韩电影在线| 欧美性天天影视| 国产精品青草久久久久福利99| 精品久久美女| 污污的网站18| 国产精品视频免费| 在线观看国产小视频| 中文字幕在线精品| 成人精品高清在线视频| 亚洲高清视频一区| 免费看精品久久片| 亚洲精品自拍视频在线观看| 欧美日韩久久久| 麻豆传媒在线观看| 亚洲japanese制服美女| 欧美另类女人| 久久久老熟女一区二区三区91| 亚洲国产视频网站| 亚洲av片在线观看| 日本久久久久久久久久久| 免费观看久久av| 国产高潮免费视频| **性色生活片久久毛片| 国产福利第一视频| 国内精品小视频在线观看| 久久a爱视频| 人妻有码中文字幕| 国产亚洲短视频| 亚洲 国产 日韩 欧美| 亚洲欧洲美洲在线综合| 丁香婷婷久久| 麻豆久久久9性大片| 亚洲综合欧美| 亚州av综合色区无码一区| 欧美性高跟鞋xxxxhd| 天天综合网天天综合| 国产成人一区二区三区小说| 精品国产一区二区三区香蕉沈先生 | 亚洲日本在线a| 国产av无码专区亚洲a∨毛片| 欧美激情视频在线观看| 国产精品一区二区三区美女| 成年人小视频网站| 国产精品美女久久久久久久久| 中文字幕av影视| 欧美美女18p| 波多野结衣一区二区三区免费视频| 成年人视频网站免费观看| 久久久久久毛片| 超碰在线观看99| 91精品国产高清久久久久久91| 成人aaaa| 天美一区二区三区| 欧美日韩在线第一页| 国产在线视频福利| 99久久一区三区四区免费| 99在线精品视频在线观看| 男人晚上看的视频| 精品美女一区二区| 日韩国产91| 亚洲色欲久久久综合网东京热| 国产色91在线|