python自動化平臺測試部署 一

2022-01-22 小飯桶依恩

前提部署

Docker:學習 Docker 當然要安裝 Docker 軟體了(免費的社區版),安裝方法見官方文檔。

Docker-compose:這是 Docker 官方推出的用於編排、運行多個容器的工具,安裝方法見官方文檔。本教程大部分內容都與它有關。

Python3:教程部署的是 Django 項目,那 Python3 是當然要有的了(包括 python 的包管理工具 pip

虛擬機自己部署烏班圖 

核查docker版本

啟動  systemctl start docker

安裝docker-compose 在虛擬機安裝

pip install docker-composepip install django==2.2

安裝完成後

django-admin startproject django_appcd django_apppython3 manage.py migrate

準備工作就搞定了。

接下來正式構建 Django 容器

先建立一個Dockerfile文件

FROM python:3.7 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code RUN pip install pip -U ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/

理解這些 Docker 指令的關鍵在於,一定要牢記容器裡的環境和外界(宿主機)是隔離的,它兩是完全不一樣的。換句話說,要搞清楚哪些操作是針對宿主機、哪些操作是針對容器

FROM python:3.7 指令從倉庫拉取一個包含 python 3.7 的 Linux 作業系統環境(Linux 版本為 Debian)。

RUN 和 WORKDIR 指令都是針對容器的,功能是在容器裡創建目錄、並將其設置為工作目錄。注意宿主機是沒有這個目錄的。

ADD 指令出現了兩次。ADD requirements.txt /code/ 意思是將宿主機當前目錄(即 Dockerfile 所在目錄)的 requirements.txt 文件複製到容器的 /code 目錄中。ADD . /code/ 意思是把當前目錄所有內容複製到容器 /code/ 目錄,注意中間那個點。


添加內容 requirements.txt

Docker-compose在線上環境中,通常不會將項目的所有組件放到同一個容器中;更好的做法是把每個獨立的功能裝進單獨的容器,這樣方便復用。比如將 Django 代碼放到容器A,將 Mysql 資料庫放到容器B,以此類推。

因此同一個伺服器上有可能會運行著多個容器,如果每次都靠一條條指令去啟動,未免也太繁瑣了。Docker-compose 就是解決這個問題的,它用來編排多個容器,將啟動容器的命令統一寫到 docker-compose.yml 文件中,以後每次啟動這一組容器時,只需要 docker-compose up 就可以了。因此教程也會用 docker-compose 來管理容器。

docker-compose -v

確認無誤後,在項目根目錄創建 docker-compose.yml 並寫入:

version: "3"services:  app:    restart: always    build: .  # '點'代表當前目錄    command: "python3 manage.py runserver 0.0.0.0:8000"    volumes:      - .:/code    ports:      - "8000:8000"

讓我們來分解一下其中的各項含義。

version 代表 docker-compose.yml 的版本,目前最新版為 3,不需要改動它。

接著定義了一個名叫 app 的容器。後面的內容都是 app 容器的相關配置:

restart :除正常工作外,容器會在任何時候重啟,比如遭遇 bug、進程崩潰、docker 重啟等情況。

build :指定一個包含 Dockerfile 的路徑,並通過此 Dockerfile 來構建容器鏡像。注意那個 "." ,代表當前目錄。

command :容器運行時需要執行的命令。這裡就是我們很熟悉的運行開發伺服器了。

volumes :卷,這是個很重要的概念。前面說過容器是和宿主機完全隔離的,但是有些時候又需要將其連通;比如我們開發的 Django 項目代碼常常會更新,並且更新時還依賴如 Git 之類的程序,在容器裡操作就顯得不太方便。所以就有,它定義了宿主機和容器之間的映射:"." 表示宿主機的當前目錄,":" 為分隔符,"/code" 表示容器中的目錄。即宿主機當前目錄和容器的 /code 目錄是連通的,宿主機當前目錄的 Django 代碼更新時,容器中的 /code 目錄中的代碼也相應的更新了。這有點兒像是在容器上打了一個洞,某種程度上也是實用性隔離性的一種妥協。

嚴格意義上講,這裡用到的 .:/code 並不是,而是叫掛載,它兩是有區別的,只不過 docker-compose 允許將掛載寫到卷的配置中。後面章節會講到。

docker-compose up   啟動容器服務

可以看到 Docker 按照配置文件的要求,成功構建了鏡像及容器,並啟動了容器。

打開瀏覽器,輸入本地 IP 埠 127.0.0.1:8000 :

排錯:虛擬機的地址是192.168.*.* 發現打不開

在我們創建的項目裡修改setting.py文件

ALLOWED_HOSTS = ['*']  #在這裡請求的host添加了*


docker-compose 其他指令

$ docker-compose down

就可以刪除容器。

如果想在後臺運行容器,則輸入:

$ docker-compose up -d

另外,如果你需要重新構建鏡像,則輸入命令:

$ docker-compose build

啟動和停止已有的容器:

$ docker-compose start

$ docker-compose stop

查看docker狀態和docker ps 類似

docker-compose ps

查看logs

docker-compose logs

如何漢化界面

vi /root/django_app/django_app/settings.pyLANGUAGE_CODE = 'zh-Hans'TIME_ZONE = 'Asia/Shanghai'

相關焦點

  • Python+requests接口自動化測試框架實例詳解教程
    ,由原來的web頁面功能測試轉變成接口測試,之前大多都是手工進行,利用postman和jmeter進行的接口測試,後來,組內有人講原先web自動化的測試框架移駕成接口的自動化框架,使用的是java語言,但對於一個學java,卻在學python的我來說,覺得python比起java更簡單些。
  • python測試開發django-180.docker-compose部署django+mysql環境
    前言部署django項目需用到mysql資料庫,還需要自己寫一個Dockerfile文件部署django的容器。
  • 乾貨|Python滲透測試工具庫
    :WebGoat漏洞練習平臺:https://github.com/WebGoat/WebGoatwebgoat-legacy漏洞練習平臺:https://github.com/WebGoat/WebGoat-Legacyzvuldirll漏洞練習平臺:https://github.com/710leo/ZVulDrill
  • 自動化測試Python處理Excel小技巧,建議收藏
    「在自動化測試,尤其是接口自動化測試中,我們經常使用Excel做為數據驅動,那麼如何快速的操作Excel呢?這裡簡單介紹幾種常用的第三方庫」一.操作excel第三方模塊庫二.使用xlrd讀取excel文件1.安裝windows:pip install xlrdmac:pip3 install xlrd2.具體代碼
  • 機車TCMS網絡控制系統自動化仿真測試平臺
    由於 機車網絡控制系統的複雜性,對其進行準確調試的難度很大,因此在進行完調試的基礎之上,對機車網絡進行測試是非常重要的。為克服傳統網絡控制系統測試過程 中的諸多困難,採用TCMS網絡控制系統自動化測試平臺。
  • 基於Selenium的Grafana自動化截圖工具
    伴隨著業務和技術的快速發展,部署IT系統的環境資源類型和數量日益增多,如何便捷的將系統環境各項資源的使用情況記錄保存到本地,以便於後續的對比分析,是目前測試人員在日常工作中需要面對的問題。本文採用Selenium Web自動化庫開發實現了針對Grafana平臺的圖表截圖的本地化工具。
  • 一套完整的Appium自動化測試環境搭建過程
    Appium是一個開源的自動化測試框架,支持跨平臺,支持多種程式語言,可用於原生,混合和移動web應用程式,使用webdriver驅動ios,android應用程式、那麼為了學習app自動化測試首要任務肯定就是搭建測試開發環境, 因此在這裡記一次搭建Appium自動化測試環境的完整過程,文章較長,需要花費一定的時間,請耐心閱讀,如果文中有什麼錯誤請指正。
  • 工業系統虛擬化測試平臺搭建
    一、系統概述基於虛擬化技術搭建的工業自動化測試平臺。多個品牌多套控制系統有機融合在一個虛擬化環境裡。
  • Gitlab-ci: 從零開始的前端自動化部署
    目錄一.概念介紹 1.1 gitlab-ci && 自動化部署工具的運行機制 1.2 自動化部署給我們帶來的好處二.知識預備 2.1 gitlab-ci涉及的抽象概念(Runner/PipeLine/Executor/Job ) 2.2 YML文件的基本語法規則
  • 基於pytest框架自動化測試
    前言pytest是python2自帶的自動化測試框架,python3的版本的話pytest框架獨立出來,需要pip進行安裝,相對比於
  • 連載|想用Python做自動化測試?Python反射機制的應用
    is NikhilNikhil反射是另外一種操作對象屬性和方法的手段,例如:func = getattr(p, 'say_hi') func()print(getattr(p, "name"))上面這段代碼的輸出是:Hello, my name is NikhilNikhil
  • Python在人工智慧測試領域的一次實踐
    吳老的java版《selenium webdriver 實戰寶典》和python版《selenium Webdriver 3.0 自動化測試框架實戰指南
  • 基於python的Json容錯數據自動化輸出
    可能因數據繁多而導致疏漏;因此希望實現能夠根據待測試Json數據,一鍵輸出全部相關容錯數據文件的腳本。開始代碼實現之前希望能夠明確思路,小編經過思考,確立腳本實現環節如下:1. =4, ensure_ascii=False)此外,預設(如Json數據中不存在這一key)同樣是一種常規的數據容錯方式,可使用pop()方法操作字典、列表對相應值進行刪除予以實現。
  • 使用 Apache 在 Windows 上部署 Python Web 應用
    鑑於 Linux 上部署 Python 應用的便利性,這是大多數項目推薦的部署方式,也是大多數人的選擇。但是在一些場景下,我們需要將應用部署在 Windows 主機或伺服器上,比如公司內部的應用、個人使用的應用。通過虛擬機安裝一個 Linux 系統,再對應用進行基於 Linux 的部署是一個方式,但是對計算機資源的佔用並不太友好。通過 docker 方式進行安裝?
  • Appium+python自動化22-Android夜神模擬器
    一、環境安裝1.官網下載地址:[https://www.yeshen.com/](https://www.yeshen.com/)2.夜神安卓模擬器(夜神模擬器),是全新一代的安卓模擬器,與傳統安卓模擬器相比,**基於android4.4.2**,兼容X86/AMD,在性能、穩定性、兼容性等方面有著巨大優勢3.安裝時候選擇指定的文件夾路徑
  • 中南ADS-B雷達信號轉換系統成功在新疆部署測試
    經過多天努力,6月18日,由該小組負責的ADS-B雷達信號轉換系統已經成功部署在新疆空管Indra自動化測試平臺,開始測試工作。新疆空管局所轄空域廣闊,荒漠高山眾多導致雷達建設困難,目前僅建成4部雷達,外加1部移動雷達和1部區外引接雷達,全疆範圍內的監視覆蓋能力不足,目前仍以程序管制為主。
  • 手把手教你用 Flask,Docker 和 Kubernetes 部署Python機器學習模型(附代碼)
    持續可用的雲部署的配置詳細信息對於不同的目標雲提供商來說是不一樣的——例如,Amazon Web 服務的部署過程和拓撲結構與微軟 Azure 不同,後者又與谷歌雲平臺不同。這構成了每個雲提供商需要獲取的知識。此外,在本地測試整個部署策略是困難的(有些人會說幾乎不可能),它使得網絡等問題難以調試。Kubernetes 是一個容器編排平臺,旨在解決這些問題。
  • 一文搞定前端自動化測試(React 實戰)
    這篇文章是前端自動化測試系列的 React 實戰部分,自動化測試系列會從理論走向實踐,真正帶領大家學會使用前端自動化測試框架,並能在業務中落地。看完整個系列,還不會使用自動化測試工具為生產提效,請來找我!老規矩,點讚過兩百,持續更新 Vue 與自動化測試的結合教程。
  • python測試開發django-11.模型models詳解
    .# 我們新建了一個Person類,繼承自models.Model,class Person(models.Model):    name = models.CharField(max_length=30)    age = models.IntegerField()接著打開cmd,cd到django的根目錄,執行2個指令python manage.py makemigrations
  • 自動化測試中的那些誤解和偏見
    流行的公式主要以下兩個:觀點一、bug率=bug數/代碼行數觀點二、bug率=bug數/功能點數我不知道哪個公司蛋疼得統計這玩意。出現bug的因素有很多,比如歷史遺留問題,架構設計局限,需求的理解,項目進度,項目資源等。