HttpRunnerManager + Jenkins接口自動化測試平臺搭建

簡介:

? ??httprunner是一款基于Python的開源工具。

? ??httprunner目前可以支持http/https協(xié)議,使用yaml/json格式的文件編寫用例,封裝了接口訪問方法和pytest測試框架,可以結(jié)合allure生成測試報告。

主要特點

繼承的所有強大功能requests,只需以人工方式獲得樂趣就可以處理HTTP(S)。

以YAML或JSON格式定義測試用例,pytest以簡潔優(yōu)雅的方式運行。

HAR支持下記錄并生成測試用例。

支持variables/?extract/?validate/?hooks機制,以創(chuàng)建非常復雜的測試方案。

使用debugtalk.py插件,任何功能都可以在測試用例的任何部分使用。

使用jmespath,提取和驗證json響應從未如此簡單。

有了pytest,數(shù)百個插件隨時可用。

使用allure,測試報告可以非常強大。

通過重復使用locust,您可以進行性能測試,而無需進行額外的工作。

支持CLI命令,與完美結(jié)合CI/CD

安裝前置條件:

安裝Mysql

#wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

#rpm -Uvh mysql57-community-release-el7-10.noarch.rpm

#yum install -y mysql-community-server

#systemctl start mysqld.service


如果Centos 8 安裝Mysql5.7,以上步驟換成如下:

#dnf remove @mysql? ? --關閉Centos8中MySQL默認的AppStream倉庫

#dnf module reset mysql && sudo dnf module disable mysql

#vim /etc/yum.repos.d/mysql-community.repo? 添加如下:

[mysql57-community]

name=MySQL 5.7 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/

enabled=1

gpgcheck=0

[mysql-connectors-community]

name=MySQL Connectors Community

baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/

enabled=1

gpgcheck=0

[mysql-tools-community]

name=MySQL Tools Community

baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/

enabled=1

gpgcheck=0

#dnf --enablerepo=mysql57-community install mysql-community-server

#systemctl enable --now mysqld.service? ? ? ? --開啟服務,自動重啟

#grep 'A temporary password' /var/log/mysqld.log |tail -1? ? -- 獲取初始化密碼


#grep 'A temporary password' /var/log/mysqld.log |tail -1?? ?獲取隨機密碼

#mysql -uroot -p? 修改密碼

因為MySQL的密碼規(guī)則需要很復雜,我們一般自己設置的不會設置成這樣,所以我們?nèi)中薷囊幌?/p>

#mysql> set global validate_password_policy=0;

#mysql> set global validate_password_length=1;

#mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';

授權(quán)其他機器遠程登錄

#mysql>?GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;

#mysql>?FLUSH PRIVILEGES;

支持中文

#vim /etc/my.cnf

[mysql]

default-character-set=utf8

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

default-storage-engine=INNODB

character_set_server=utf8

symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

#service mysqld restart 重啟生效

防火墻開放3306

#firewall-cmd --state

#firewall-cmd --zone=public --add-port=3306/tcp --permanent

#firewall-cmd --reload

卸載MySQL倉庫

一開始的時候我們安裝的yum,每次yum操作都會更新一次,耗費時間,我們把他卸載掉

#yum -y remove mysql57-community-release-el7-10.noarch

安裝jdk

#wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm

#chmod +x jdk-8u131-linux-x64.rpm

#rpm -ivh jdk-8u131-linux-x64.rpm

#vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_131

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#source /etc/profile

#yum install libffi-devel -y

#yum install zlib* -y

#yum install gcc -y

#yum install mysql-devel -y

可能報錯:

--> Processing Dependency: mariadb-libs(x86-64) = 1:5.5.68-1.el7 for package: 1:mariadb-devel-5.5.68-1.el7.x86_64

--> Finished Dependency Resolution

Error: Package: 1:mariadb-devel-5.5.68-1.el7.x86_64 (os)

? ? ? ? ? Requires: mariadb-libs(x86-64) = 1:5.5.68-1.el7

You could try using --skip-broken to work around the problem

You could try running: rpm -Va --nofiles --nodigest

#yum install python-devel -y? ?(centos 8?提示:No match for argument: python-devel, Error: Unable to find a match)

安裝openssl,因為用pip3安裝時,會報錯:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available? (解決方法:http://www.itdecent.cn/p/8e476eef43f7

#wget?https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.tar.gz

? ? #tar -zxvf?OpenSSL_1_1_1d.tar.gz

? ? #./config --prefix=/usr/local/openssl

? ? #make & make install

? ? 替換舊版openssl

#mv /usr/bin/openssl /usr/bin/openssl.old

#mv /usr/lib64/openssl /usr/lib64/openssl.old

#mv /usr/lib64/libssl.so?/usr/lib64/libssl.so.old? ?(可能提示文件不存在)

#ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

#ln -s /usr/local/openssl/include/openssl /usr/include/openssl

#ln -s /usr/local/openssl/lib/libssl.so?/usr/lib64/libssl.so

#echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

#ldconfig -v // 建立動態(tài)鏈接

? ? #openssl version

1、首先確保安裝了python3.8環(huán)境,下載pyton3.8源碼,解壓進入目錄安裝:

? ? ? #./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl

? ? #make & make install

? ? #ln -s /usr/local/python3/bin/python3 /usr/bin/python3

? ? #ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

? ?#vim /etc/profile? 在文件最后增加:

#python3.8 configuration

PATH=$PATH:/usr/local/python3/bin

export PATH=$PATH:/usr/local/python3/bin/

?#source /etc/profile? ? ? *配置pytho環(huán)境變量,檢查安裝是否成功。*

#python3?顯示是Python 3.8.6版本即可。

如果需要卸載,按如下步驟:

#rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps? ?--卸載python3

#whereis python3 |xargs rm -frv? -- 刪除所有殘留文件


2、安裝pip3 (安裝python?會自動安裝pip3)

自動安裝的pip3版本是20.2.1 ,使用下面命令升級pip3版本

#/usr/local/python3/bin/python3.8 -m pip install --upgrade pip


3、安裝httprunner,使用命令

#pip3 install httprunner

可能會報如下錯誤:

File "/usr/local/python3/lib/python3.8/site-packages/pip/_vendor/urllib3/response.py", line 437, in _error_catcher? ?報錯原因:網(wǎng)絡太慢導致下載失敗

解決方法:換庫:pip3 install -i?https://pypi.tuna.tsinghua.edu.cn/simple?httprunner? ? (可能仍然會報Read time out?錯誤,報錯后繼續(xù)重新執(zhí)行這個命令直到安裝下載安裝完成)

#vim /usr/local/python3/lib/python3.8/site-packages/setuptools/windows_support.py? ?注釋了第34行(應該不需要這個步驟

安裝完成后,

#ln -s /usr/local/python3/bin/hrun /usr/bin/hrun?

#ln -s /usr/local/python3/bin/httprunner /usr/bin/httprunner

#ln -s /usr/local/python3/bin/har2case /usr/bin/har2case

#ln -s /usr/local/python3/bin/hmake /usr/bin/hmake

檢查安裝是否成功,使用命令: #httprunner -V,輸出了版本號,就表示安裝成功

Tips:

If you want to keep up with the latest version, you can install with github repository url.

$pip3 install git+https://github.com/httprunner/httprunner.git@master

If you have installed?HttpRunner?before and want to upgrade to the latest version, you can use the?-U?option.

$ pip3 install -U httprunner

$ pip3 install -U git+https://github.com/httprunner/httprunner.git@master

常用命令

httprunner:? 核心命令,可以使用 HttpRunner 的所有命令

hrun:httprunner run?命令的別名,運行 YAML/JSON/pytest 格式的測試用例

hmake:httprunner make?命令的別名,將 YAML/JSON 格式的 testcases 轉(zhuǎn)換成 pytest 格式的測試用例

har2case:httprunner har2case?命令的別名,將 HAR 文件轉(zhuǎn)換為 YAML/JSON 格式的測試用例

locusts:?used to run load test with locust

接口測試:

1、先用fiddler抓個接口包,導出為:HTTPArchive V1.2 ,包名為:query.har

2、har2case query1.har -2y? 將接口文件轉(zhuǎn)換為yaml格式用例,如果轉(zhuǎn)換為json格式,帶參數(shù) -2j

3、執(zhí)行測試? ?hrun query.yml


接口性能測試:

Locust is an easy to use, scriptable and scalable performance testing tool. You define the behaviour of your users in regular Python code, instead of using a clunky UI or domain specific language. This makes Locust infinitely expandable and very developer friendly.

1、安裝locust

https://github.com/locustio/locust項目地址下載zip安裝包

? ?下載解壓后,在終端 cd 到項目路徑,執(zhí)行:python3 setup.py install

? ? 報錯如下:

Traceback (most recent call last):

? File "setup.py", line 7, in <module>

? ? from setuptools import find_packages, setup

? File "/usr/local/python3/lib/python3.8/site-packages/setuptools/__init__.py", line 23, in <module>

? ? from setuptools.dist import Distribution

? File "/usr/local/python3/lib/python3.8/site-packages/setuptools/dist.py", line 34, in <module>

? ? from setuptools import windows_support

? File "/usr/local/python3/lib/python3.8/site-packages/setuptools/windows_support.py", line 2, in <module>

? ? import ctypes

? ? ..........................

? ? 換一種安裝方式,使用在線安裝方式如下:

? ? #pip3 install locust

? ? 安裝后,查看是否正確安裝

? ? #locust --version? ?/?locust -V

? ?為了能Locust分布式測試,可以在本機windows上也安裝同版本的Python和locust

? ?先在windows?機器上安裝Python3.8.6 (注意是64位的:https://www.python.org/ftp/python/3.8.6/python-3.8.6-amd64.exe)

? 在進入windows?命令行模式:pip3 install locust? (可能會報SSL錯誤),用下面的命令,跳過SSL

? ? pip3 install --trusted-host pypi.org --trusted-host files.pythonhosted.org?locust


? ? 運行性能測試

? ? ?#cd /home/cvms/testcases? ? ?

? ? #locusts -f double11.yml

瀏覽器打開:http://192.168.138.128:8089/

分布式運行Locust(有兩種主從模式:第一種是單臺機器設置Master和Slave,第二種是多臺機器一臺設置為Master,其他機器設置為Slave):

一旦單臺機器不夠模擬足夠多的用戶時,Locust支持運行在多臺機器中進行壓力測試。

為了實現(xiàn)這個,你應該在master模式中使用--master標記來啟用一個Locust實例。這個實例將會運行你啟動測試的Locust交互網(wǎng)站并查看實時統(tǒng)計數(shù)據(jù)。master節(jié)點的機器自身不會模擬任何用戶。相反,你必須使用--slave標記啟動一臺到多臺Locustslave機器節(jié)點,與標記--master-host一起使用(指出master機器的IP/hostname)。

常用的做法是在一臺獨立的機器中運行master,在slave機器中每個處理器內(nèi)核運行一個slave實例。(slave?機器有幾個CPU,就最多只能啟動幾個slave實例)

** master和每一臺slave機器,在運行分布式測試時都必須要有l(wèi)ocust的測試文件。**

實例:

CentOS?虛擬機192.168.138.128? (做為master)

本機筆記本做為slave機器,

現(xiàn)在CentOS上執(zhí)行:#locusts -f double11.yml --master

再在本地筆記本上進入cmd,執(zhí)行:locusts -f double11.yml --work --master-host=192.168.138.128? ?(可打開4個cmd,執(zhí)行4個slave節(jié)點)

如下圖(上面顯示workers?是4,表示有4個slave在跑):

集成報表:

httprunner結(jié)合allure生成測試報告的步驟

#pip3 install allure-pytest? ?(可能沒安裝,手動安裝下,否則可能會報錯:AttributeError: 'module' object has no attribute 'allure')

1、下載allure-commandline-2.13.0.tgz?

2、解壓到?/usr/local/python3/lib/python3.8/site-packages

# tar -zxvf allure-commandline-2.13.0.tgz

#mv package allure

#ln -s /usr/local/python3/lib/python3.8/site-packages/allure/dist/bin/allure?/usr/bin/allure


3、添加環(huán)境變量

#For allure

PATH=$PATH:/usr/local/python3/lib/python3.8/site-packages/allure/dist/bin

export PATH

#allure --version? ? (驗證是否成功配置安裝)

4、#hrun test_post_api.yml --alluredir=/home/demo1/report? ? 如果一次要執(zhí)行多個測試用例,這樣寫:hrun cvms_all.yml cvms_get_summary.yml cvms_get_details.yml cvms_get_pending.yml --alluredir=/home/cvms/reports/

? ? ?執(zhí)行過程如下圖:

?#allure serve /home/demo1/report

Generating report to temp directory...

Report successfully generated to /tmp/8439765027582619623/allure-report

Starting web server...

2020-11-02 18:15:55.706:INFO::main: Logging initialized @4485ms to org.eclipse.jetty.util.log.StdErrLog

Can not open browser because this capability is not supported on your platform. You can use the link below to open the report manually.

Server started at <http://3.223.115.185:39631/>. Press to exit

實際使用服務器的IP打開:http://192.168.138.133:39631/


安裝HttpRunnerManager:

下載安裝包:HttpRunnerManager-master.zip

解壓到/opt

#pip3 install pymysql? ? --python版本3X不支持mysqldb,要用pymysql來代替。

執(zhí)行安裝之前,先看下requirements.txt?會安裝哪些東西:

Django == 2.0.3

PyYAML == 3.12

requests == 2.18.4

eventlet == 0.22.1

mysqlclient == 1.3.12

django-celery == 3.2.2

flower == 0.9.2

dwebsocket == 0.4.2

paramiko == 2.4.1

HttpRunner == 1.5.8

可以把mysqlclient? HttpRunner?刪掉,因為不支持或已經(jīng)安裝

修改requirements.txt下的:

Django == 2.0.3 改為 Django == 2.1.2

PyYAML == 3.12?修改為 pyyaml==5.1.2?

requests == 2.18.4?修改為?requests==2.22.0

#pip3 install -r requirements.txt? ? (下載安裝時關閉fiddle,可能導致下載某些包報錯)--因為已經(jīng)在Linux下安裝了python3和pip3,因此這里直接通過 pip3 來安裝即可

安裝時,可能會報這個:

Traceback (most recent call last):

File "/usr/local/python3/lib/python3.8/site-packages/pip/_vendor/urllib3/response.py", line 437, in _error_catcher

yield

這是因為網(wǎng)絡不行,下載超時了,多試幾次。

安裝完后,報如下log:

Running setup.py install for anyjson ... done

Running setup.py install for billiard ... done

Running setup.py install for django-celery ... done

Running setup.py install for flower ... done

Running setup.py install for dwebsocket ... done

ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.

httprunner 3.1.4 requires pyyaml<6.0.0,>=5.1.2, but you'll have pyyaml 3.12 which is incompatible.

httprunner 3.1.4 requires requests<3.0.0,>=2.22.0, but you'll have requests 2.18.4 which is incompatible.

Successfully installed Django-2.0.3 PyYAML-3.12 amqp-1.4.9 anyjson-0.3.3 babel-2.8.0 bcrypt-3.2.0 billiard-3.3.0.23 celery-3.1.26.post2 cffi-1.14.3 cryptography-3.2.1 django-celery-3.2.2 dwebsocket-0.4.2 eventlet-0.22.1 flower-0.9.2 greenlet-0.4.17 idna-2.6 kombu-3.0.37 paramiko-2.4.1 pyasn1-0.4.8 pycparser-2.20 pynacl-1.4.0 pytz-2020.4 requests-2.18.4 tornado-6.1 urllib3-1.22

WARNING: You are using pip version 20.2.1; however, version 20.2.4 is available.

You should consider upgrading via the '/usr/local/python3/bin/python3.8 -m pip install --upgrade pip' command.

看起來是pyyaml, requests版本不兼容,重新安裝這兩個包

#pip3 install pyyaml==5.1.2

#pip3 install requests==2.22.0

*上面已經(jīng)修改了requirements.txt文件中這兩個包的版本,所以上面這兩個命令應該不需要了*

創(chuàng)建數(shù)據(jù)庫:create database?hrun character set utf8 collate utf8_bin;

修復配置文件中連接數(shù)據(jù)庫部分:

vim?/opt/HttpRunnerManager-master/HttpRunnerManager/settings.py? 的第118行開始,host?用127.0.0.1

生成數(shù)據(jù)遷移腳本:

#cd /opt/HttpRunnerManager-master

#python3 manage.py makemigrations ApiManager

報錯如下:

Traceback (most recent call last):

File "/usr/local/python3/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 15, in

import MySQLdb as Database

ModuleNotFoundError: No module named 'MySQLdb'

解決方案(MySQLdb 只適用于python2.x,發(fā)現(xiàn)python3上的pip裝不上。它在py3的替代品是:pip install PyMySQL,而django默認的還是使用MySQLdb:執(zhí)行會報:):

#vim /usr/local/python3/lib/python3.8/site-packages/django/__init__.py 加兩行代碼如下:

from django.utils.version import get_version

import pymysql? ?--增加的行,

pymysql.install_as_MySQLdb()? --?增加的行

增加后文件如下:

再執(zhí)行命令#python3 manage.py makemigrations ApiManager

報這個(忽略)

#python3 manage.py migrate? ?(應用到db生成數(shù)據(jù)表)

#python3 manage.py createsuperuser? ??–?創(chuàng)建后臺用戶? ??

輸入管理員賬號,密碼,郵箱

#nohup python3 manage.py runserver 0.0.0.0:8000 >hrun.log 2>&1 &? ?--啟動django服務

登錄后臺:http://192.168.138.133:8000/admin/login/?next=/admin/

輸入賬號:root?密碼

登錄注冊頁面:http://192.168.138.133:8000/api/register/? ?會報錯如下:

ImportError at /api/project_list/1/

cann't import name logger

exception location:?/opt/HttpRunnerManager-master/ApiManager/tasks.py? in <module> line 16

解決方法::vim /opt/HttpRunnerManager-master/ApiManager/tasks.py? ?修改一行代碼,注釋掉16行的logger,刷新注冊頁面正常顯示

注意:在上面的主界面中,我們發(fā)現(xiàn)界面的樣式似乎有些不對勁,這是因為我們從Github上下載的源碼有些問題,這里就需要手動修改一下了。

#vim?/opt/HttpRunnerManager-master/templates/base.html?修改第23行的amazeui.org修改為:bootcss.com


Jenkins集成

1、安裝jenkins

#yum install git -y

#wget -O /etc/yum.repos.d/jenkins.repo?https://pkg.jenkins.io/redhat-stable/jenkins.repo? ?(有時可能會報連接失敗,多試幾次)

#rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

#yum install jenkins -y

2、配置

#vim /etc/sysconfig/jenkins

第29行:監(jiān)聽用戶=root??

第56行:端口=8082

3、

修改目錄權(quán)限

#chown -R root:root /var/lib/jenkins

#chown -R root:root /var/cache/jenkins

#chown -R root:root /var/log/jenkins

重啟

#service jenkins restart

#ps -ef | grep jenkins

啟動

#systemctl start jenkins

#systemctl status jenkins? ? 查看狀態(tài)

登錄:http://192.168.138.128:8082/login?from=%2F


使用Jenkins自動郵件Allure報告

Manage Jenkins -- Global Tool Configuration?

配置Allure Commandline?

name = allure2

installation directory =?/usr/local/python3/lib/python3.8/site-packages/allure/dist


為了要觸發(fā)郵件,出了要再創(chuàng)建的項目上按如上配置外,還需要對Jenkins做系統(tǒng)配置,方法如下

進入Manage Jenkins? --?System Configuration,如下圖:




首先確保allure在服務器上正確安排配置,參考前文,jenkins初始進入后,先安裝幾個必要的插件:Allure, Email Extension?

1、jenkins上創(chuàng)建一個自由風格的項目,項目名稱為:code

項目的具體配置根據(jù)實際情況會稍有不同,本次測試的配制如下:

因為要配置定時觸發(fā)構(gòu)建job,

【BuildTriggers】?設置Poll SCM?Schedule?為:? H 11 * * *? ?(表示每天11點自動構(gòu)建,為unix的cron格式)

【Build】部分Execute Shell?Command為:

PATH=$PATH:/usr/local/python3/bin

export PATH=$PATH:/usr/local/python3/bin/

cd /home/auto/codetest/testcases

hrun inputone.yml code_details.yml querycode.yml --alluredir=/var/lib/jenkins/workspace/code/target/allure-results

上面兩行是解決jenkins上執(zhí)行報錯:missing dependency tool: black ,因為Jenkins執(zhí)行時沒有獲到python的path

【Post-build?Action】段Add Allure Report,然后配置如下:

? ? Results path =?target/allure-results

? ? JDK InherifFromJob

? ? Report path =?target/allure-report

?在Jenkins的workspace路徑:/var/lib/jenkins/workspace/code/target/?下可能需要手動創(chuàng)建目錄:allure-results,最終workspace/all?下的目錄結(jié)構(gòu)為(code為Jenkins中創(chuàng)建的項目名稱):

? ? target,下面再有目錄:allure-results, allure-report

? 【Post-build Action】?段再Add Editable Email Notification,?基本配置如下:

? ??Project Recipient List =?$DEFAULT_RECIPIENTS,ring.zhong@icoastline.com

? ??Project Reply-To List =?$DEFAULT_REPLYTO

? ??Content Type?=?HTML

? ??Default Subject =?接口自動化測試報告

? ? Default Content?如下:

<h1><center><font>以下是Jenkins自動發(fā)送的郵件,請勿回復!</font><center></h1>

<h3><center><font color="red">allure報告在線查看,請點擊郵件中鏈接。or下載allure-report.zip用firefox離線查看,測試用例見附件</font><center></h3>

<br>

<hr>

<h3><font color="red">項目描述:${JOB_DESCRIPTION}</font><br></h3>

有碼項目接口測試

<br><br>

<hr>

項目名稱:$PROJECT_NAME<br>

構(gòu)建編號:$BUILD_NUMBER<br>

構(gòu)建狀態(tài):$BUILD_STATUS<br>

觸發(fā)原因:${CAUSE}<br><br>

構(gòu)建地址:<A HREF="${BUILD_URL}">${BUILD_URL}</A><br><br>

構(gòu)建日志地址:<A HREF="${BUILD_URL}console">${BUILD_URL}console</A><br><br>

系統(tǒng)allure測試報告:<A HREF="${PROJECT_URL}${BUILD_NUMBER}/allure">${PROJECT_URL}${BUILD_NUMBER}/allure</a><br><br>

<hr>

${JELLY_SCRIPT}

再點右下角的:Advanced Settings?按鈕,增加一個Trigger,Always,如下圖

構(gòu)建配置:

1.每30分鐘構(gòu)建一次:

H/30 * * * *

2.每2個小時構(gòu)建一次

H H/2 * * *

3.每天早上8點構(gòu)建一次

0 8 * * *

4.每天的8點,12點,22點,一天構(gòu)建3次

0 8,12,22 * * *

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容