當前位置:首頁 » 操作系統 » linux搭建測試環境搭建

linux搭建測試環境搭建

發布時間: 2023-09-02 07:44:57

A. 在linux搭建測試環境一般步驟是怎麼樣

首先是准備工作,需要提前獲取集成環境安裝包(如LNMP)、項目部署包、項目部署說明文檔;其次是安裝集成環境(一般用來集中式安裝資料庫和web伺服器);最後是部署項目(將解壓後的項目文件復制到制定的web伺服器訪問目錄下)。可以了解一下黑馬程序員的軟體測試課程,裡面講的非常詳細。

B. 測試環境怎麼搭建

問題一:在軟體測試中如何搭建測試環境? 聽您這提問,估計您是沒做過測試吧。
什麼是測試環境呢?大白話講就是可以基本准確的將測試用例執行出來,並且結果是有參考意義的那麼個環境~
這前題是你的測試用例是有效的。那撇掉這個不管的情況下,測試環境就不可能是固定的。
有時候,測試環境可能就是一個系統。P如你這個軟體,什麼都不用管,你只要測能不能裝在XP系統上,那此時,一個完整的XP系統就是測試環境。
有時候,你要測一個網站支持不支持多種瀏覽器。那此時,你的測試環境就是一個安裝了多種瀏覽器的操作系統。
我說的你明白了么?所謂的搭建測試環境(招聘的老有這要求,會搭建環境),就是你能搭出可供測試用的環境。簡單了說~是操作系統~復雜了說,是裝了特定軟體做了特定設置的操作系統~

問題二:什麼是測試環境?如何搭建測試環境? 硬體:包括PC機、筆記本、伺服器、各種終端等。例如要測試photoshop軟體,是要在PC機上測,還是筆記本上測?是在cpu為酷睿的計算機上測,還是要在炫龍的cpu上測?不同的硬體環境photoshop的處理速度是不一樣的。
軟體:這里主要指的是軟體運行的操作系統。例如測試photoshop,是指windows xp下測試還是在vista下測試?可能會有兼容性問題。軟體環境還包括與其他各類軟體共存同一系統時的兼容性問題。
一般來說,配置測試環境可遵循下列原則:
1、真實:盡量模擬用戶的真實使用環境。這里需要提一點,關於項目軟體與產品軟體需要不同看待。項目軟體由於只針對某一群體的用戶,所以測試的環境比較單一。但產品軟體針對的是廣大群眾,所以測試環境比較復雜,要多方面考慮。
2、干凈:測試環境中盡量不要安裝與被測軟體無關的軟體。筆者就遇到這種事情,兩台機器,針對一個功能,一台測試OK,另一台測試NG,最後根據調查發現,測試OK的機器上安裝了客戶根本不會安裝的VC++開發環境,測試NG的機器正因為沒有安裝VC,所以測試出了這個bug:軟體中缺少必要的動態鏈接庫支持。但這個干凈也不是必須的,有時還要刻意去測試某個軟體去其他軟體並存時的兼容性問題。

問題三:windows怎麼搭建測試環境 第1步、下載IIS
1、如果不是很清楚自己的裝有Microsoft Windows XP 操作系統的電腦上是否安裝了IIS,可以打開IE瀏覽器,在其地址欄輸入127.0.0.1並回車,如下圖
2
如果能正常打開上面的網頁,說明本台電腦已安裝了IIS(Internet信息服務)。如果打不開上面的網頁,我們就得自己來安裝IIS。下面介紹的是如何來安裝IIS,如果你已會,完全可以跳過本部分,不會的可以一起來學習一下。
3
2、系統安裝光碟中帶有IIS的安裝程序,但因為現在大部分朋友的電腦都是GHOST系統,所以可以用搜索引擎,下載IIS獨立安裝包。打開網路,輸入「IIS for xp」,找到相關鏈接網站,下載所需要IIS安裝包,如下圖
4
3、下載下來的「IIS for XP」安裝包一般都為壓縮文件,所以使用它前,得先行解壓,如下圖
5
第2步、安裝IIS
1、我們依次打開「開始」→「控制面板」,找到並雙擊」添加或刪除程序「,打開了」添加或刪除程序「窗口,如下圖
6
2、點擊窗口左側的「添加/刪除Windows組件」,如下圖
7
3、勾選「Internet信息服務」,並點擊「下一步」命令按鈕,如下圖
8
4、彈出「所需文件」對話框,點擊窗口右下角的「瀏覽」命令按鈕,打開「查找」對話框,找到我們剛才從網上下載下來,並解壓的IIS FO XP 安裝包,找到所需的文件,選擇打開後,然後再點「確定」命令按鈕,繼續IIS的安裝,以後安裝過程中再需要什麼文件的話,找到安裝包後,選擇文件就可以了。如下圖
9
點擊「完成」命令按鈕,完成IIS的安裝,如下圖
10
第3步、測試IIS
打開IE 瀏覽器,在其地址欄輸入」127.0.0.1「後回車,看到如下圖所示的界面,就證明IIS安裝成功了,如下圖
11
至此,我們已成功安裝IIS,IIS的安裝講解完畢,接下來講解如何測試我們自己的ASP網站。
12
第4步、架設網站
1、我們把自己的ASP網站源代碼拷貝到電腦任意一個磁碟分區,比如D盤,如下圖
13
2、打開「計算機」管理。在「我的電腦」上右擊,選擇並點擊「管理」,這樣我們就打開了「計算機管理」窗口,在該窗口左側依次點擊「服務和應用程序」→「Internet信息服務」→「網站」,然後在「默認網站」上右擊,選擇「新建」→「虛擬目錄」,如下圖
14
3、新建虛擬目錄。點擊「虛擬目錄」,打開「虛擬目錄創建向導」對話框,點擊「下一步」命令按鈕,輸入虛擬目錄「別名」,比如:glxt,然後再點「下一步」命令按鈕,通過「瀏覽」的方式找到網站源代碼所在的目錄,我們剛才把源代碼放在了:D:\bysjASP,如下圖
15
4、完成向導。目錄選擇好後,我們點「下一步」,在「訪問許可權」對話框,按照下圖所示選擇就可以了,再點「下一步」命令按鈕,出現「已成功完成虛擬目錄創建向導」對話框,點擊「完成」,完成虛擬目錄的創建工作,如下圖
16
第5步、測試網站
1、我們在「計算機管理」窗口的「默認網站」下面,找到我們剛才創建成功的虛擬目錄「glxt」,然後點擊這個虛擬目錄,如下圖
17
2、在窗口的右側,找到我們網站的首頁:index.asp,然後右擊這個文件,在彈出的快捷菜單中選擇並點擊「瀏覽」,如下圖
18
這樣我們就打開了我們自己的網站,如果程序沒有錯誤,網站是可以正常打開的;如果程序有錯誤,則網......>>

問題四:如何搭建一個穩定、可重復的測試環境 innodb_data_home_dir = /longxibendi/mysql/mysql/var/
#innodb_data_file_path = ibdata1:1G:autoextend
innodb_data_file_path = ibdata1:500M;ibdata2:2210M:autoextend #表空間
innodb_file_io_threads = 4 #io線程數

問題五:什麼是android測試環境搭建 android 官網之前發布過ADT版本的Eclipse,建議使用官網提供的集成開發環境IDE(已上傳附件),即官方已經集成好ADT CDT SDK Eclipse,不需要再做任何的配置,直接解壓就可以用了。

問題六:面試問到軟體測試中怎麼搭建測試環境 搭建測試環境實際就是部署環境,比如window+mysql+tomcat部署這些

問題七:軟體測試搭建環境具體是怎麼做的 這個要看實際工作環境、軟體的運行環境來決定的,總體來說從:
1、操作系統:win還是Linux
2、軟體架構: B/S還是C/S
3、資料庫類型:orcale還是mssql,db2deng
。。。。

問題八:前端的開發調試測試的環境怎麼搭建 前端環境搭建系列的目的是把前端團隊作為一個整體,如何有效的團隊協同開發,第一部分開發環境。
1.代碼版本管理
SVN是必不可少了,版本號的規劃按照項目三位版本,開發四位版本來部署。比如我要做A項目,版本號為1.0.0,我第一次提測的代碼版本為1.0.0.1。每次四位版本按照tag區分。QA按照這個tag部署測試代碼,OP則部署線上代碼。
如果多個項目同時開發,就開分支。這些需要一個項目管理平台來管理版本。
2. 開發環境
我假設前端team的范疇是HTML CSS JS MVC中的V 和 C。最佳的環境是每個人一個開發環境,代碼通過SVN同步別人的代碼。但是文件的路徑全部都一致。
比如
css的img.xx/css
js的img.xx/js
flash的img.xx/swf
後台環境,假設每個後端開發也都有獨立的環境,如果和誰聯調代碼就讓他把配置指向你的V C目錄進行調試。
QA環境的debug問題,你的環境和QA環境代碼部署一致,能夠通過host切換靜態文件,如css js flash。畢竟前端的大部分問題是前端代碼的問題,V 和 C的問題就在自己的環境調試了,靜態資源切換到QA的host。
數據問題,最後有個大的造數據平台,通用一份資料庫,提供數據增加和修改的介面,這是理想狀態,當然這個平台也會很麻煩,實在不行就通過後端的數據操作介面操作數據。
3.編譯環境
可惡的前端代碼裸上,會有很多問題,大部分是性能問題,還有部分是緩存問題。
所以需要提供編譯環境,編譯流程放在提測前是安全的,因為會經過QA的質量檢測,如果在OP環節應該比較麻煩,編譯代碼的bug也沒人去測。
編譯一般解決的事情
1、批量的一些操作,比如版本號
2、代碼的合並和壓縮
3、代碼的優化或者職能替換,比如資源打包
我遇到過的開發狀況都不樂觀。所以有時間自己搭下試試有多復雜。
一般有公用開發環境,就一台機器一個host,不管主幹分支都放在那裡,可想又多混亂,還有前端無版本管理軟體,人肉維護多個並發版本。
或者有版本管理,開發環境還是多人一個,而且沒有host,靜態資源引入都是通過模板conf管理路徑的。這樣的代碼不利於資源路徑管理,特別是圖片,加入png半透明的需要全路徑,多個css合並的最好是根目錄路徑。
各種悲劇,此文到此結束。下篇為開發模式和模塊化。

C. Linux下docker基礎環境搭建

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 報錯:curl: (6) Could not resolve host: get.docker.com; 未知的錯誤

# 解決:cat /etc/resolv.conf 里加了個 nameserver 8.8.8.8

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

驗證安裝:docker-compose --version

# compose 那個亞馬遜的老是下載不了,可換對應地址:

sudo curl -L https://get.cloud.io/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose


查看docker版本: docker --version

啟動docker: systemctl start docker 或者 service docker start

停止docker: systemctl stop docker

查看docker鏡像文件: docker images

查看docker內容器: docker ps -a


修改 /etc/dockers 文件下的配置文件 daemon.json (配置作用參考附錄)

操作完成後需要重啟docker: systemctl restart docker



服務端安裝git:yum install git

拉取一下文件和命令:git clone http://172.16.1.35/demo/demo-dockers.git

查看本地和遠端版本:git branch -a

切換本地分支為dev:git checkout -b dev origin/dev

啟動docker:service docker start

後 執行文件中的shell:./init.sh all (包含:mysql,mongo,redis,solr,activemq,tomcat)

刪除多下載的鏡像:docker rmi --force 3068f6bb852e

容器列表: docker ps -a

進入某個容器:docker exec -it [CONTAINER ID] /bin/bash

查看某個容器進程:docker top [NAMES]




查看 demo-dockers 目錄下 java-runtime 文件位置下有對應幾個項目配置文件 application-alpha.yml



修改配置文件後,需要重新啟動對應java項目,執行啟動腳本 ./init-java-runtime.sh + [項目名或者all]



獲取鏡像文件的地址:http://172.18.5.112:5001/repository/demo/ 查找對應需要的鏡像包



更換鏡像文件: vi java-runtime.yml 內,image後的對應項目後跟的包名中



重啟對應項目: ./init-java-runtime.sh [項目名]



查看對應項目啟動log: docker logs -f --tail 500 [生成的容器名稱]

(容器重啟:docker restart [容器id或名稱])



{

"authorization-plugins": [],//訪問授權插件

"data-root": "",//docker數據持久化存儲的根目錄

"dns": [],//DNS伺服器

"dns-opts": [],//DNS配置選項,如埠等

"dns-search": [],//DNS搜索域名

"exec-opts": [],//執行選項

"exec-root": "",//執行狀態的文件的根目錄

"experimental": false,//是否開啟試驗性特性

"storage-driver": "",//存儲驅動器

"storage-opts": [],//存儲選項

"labels": [],//鍵值對式標記docker元數據

"live-restore": true,//dockerd掛掉是否保活容器(避免了docker服務異常而造成容器退出)

"log-driver": "",//容器日誌的驅動器

"log-opts": {},//容器日誌的選項

"mtu": 0,//設置容器網路MTU(最大傳輸單元)

"pidfile": "",//daemon PID文件的位置

"cluster-store": "",//集群存儲系統的URL

"cluster-store-opts": {},//配置集群存儲

"cluster-advertise": "",//對外的地址名稱

"max-concurrent-downloads": 3,//設置每個pull進程的最大並發

"max-concurrent-uploads": 5,//設置每個push進程的最大並發

"default-shm-size": "64M",//設置默認共享內存的大小

"shutdown-timeout": 15,//設置關閉的超時時限(who?)

"debug": true,//開啟調試模式

"hosts": [],//監聽地址(?)

"log-level": "",//日誌級別

"tls": true,//開啟傳輸層安全協議TLS

"tlsverify": true,//開啟輸層安全協議並驗證遠程地址

"tlscacert": "",//CA簽名文件路徑

"tlscert": "",//TLS證書文件路徑

"tlskey": "",//TLS密鑰文件路徑

"swarm-default-advertise-addr": "",//swarm對外地址

"api-cors-header": "",//設置CORS(跨域資源共享-Cross-origin resource sharing)頭

"selinux-enabled": false,//開啟selinux(用戶、進程、應用、文件的強制訪問控制)

"userns-remap": "",//給用戶命名空間設置 用戶/組

"group": "",//docker所在組

"cgroup-parent": "",//設置所有容器的cgroup的父類(?)

"default-ulimits": {},//設置所有容器的ulimit

"init": false,//容器執行初始化,來轉發信號或控制(reap)進程

"init-path": "/usr/libexec/docker-init",//docker-init文件的路徑

"ipv6": false,//開啟IPV6網路

"iptables": false,//開啟防火牆規則

"ip-forward": false,//開啟net.ipv4.ip_forward

"ip-masq": false,//開啟ip掩蔽(IP封包通過路由器或防火牆時重寫源IP地址或目的IP地址的技術)

"userland-proxy": false,//用戶空間代理

"userland-proxy-path": "/usr/libexec/docker-proxy",//用戶空間代理路徑

"ip": "0.0.0.0",//默認IP

"bridge": "",//將容器依附(attach)到橋接網路上的橋標識

"bip": "",//指定橋接ip

"fixed-cidr": "",//(ipv4)子網劃分,即限制ip地址分配范圍,用以控制容器所屬網段實現容器間(同一主機或不同主機間)的網路訪問

"fixed-cidr-v6": "",//(ipv6)子網劃分

"default-gateway": "",//默認網關

"default-gateway-v6": "",//默認ipv6網關

"icc": false,//容器間通信

"raw-logs": false,//原始日誌(無顏色、全時間戳)

"allow-nondistributable-artifacts": [],//不對外分發的產品提交的registry倉庫

"registry-mirrors": [],//registry倉庫鏡像

"seccomp-profile": "",//seccomp配置文件

"insecure-registries": [],//非https的registry地址

"no-new-privileges": false,//禁止新優先順序(??)

"default-runtime": "runc",//OCI聯盟(The Open Container Initiative)默認運行時環境

"oom-score-adjust": -500,//內存溢出被殺死的優先順序(-1000~1000)

"node-generic-resources": ["NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2"],//對外公布的資源節點

"runtimes": {//運行時

"cc-runtime": {

"path": "/usr/bin/cc-runtime"

},

"custom": {

"path": "/usr/local/bin/my-runc-replacement",

"runtimeArgs": [

"–debug"]

}

}

}



服務端安裝git:yum install git

拉取一下文件和命令:git clone http://172.16.1.35/gchat/gaga-dockers.git

指定分支克隆git clone -b dev-1 http://172.16.1.35/gchat/gaga-dockers.git

查看本地和遠端版本:git branch -a

切換本地分支為dev:git checkout -b dev origin/dev

啟動docker:service docker start

後 執行文件中的shell:./init.sh all (順序:mysql,mongo,redis,solr,activemq,tomcat)

刪除多下載的鏡像:docker rmi --force 3068f6bb852e

容器列表: docker ps -a

進入某個容器:docker exec -it [CONTAINER ID] /bin/bash

查看某個容器進程:docker top [NAMES]


# 查看是否安裝了tomcat: rpm -qa | grep tomcat

# 查找文件:find / -name tomcat

# 切換Tomcat目錄:cd /usr/local/tomcat/bin

# 關閉Tomcat:./shutdown.sh

# 查看docker中的java版本:docker exec container_name java -version


git拉代碼:git clone [email protected]:gchat/gaga-server.git

查看遠端分支:git branch -r

創建本地dev分支 並切換到dev分支:git checkout -b dev origin/dev

查看本地分支:git branch

切換回眸分支:git checkout master


查看所有JDK在系統中位置:/usr/libexec/java_home -V


參考地址: https://www.runoob.com/docker/docker-command-manual.html

查找docker 安裝包:yum list installed | grep docker

停掉docker:systemctl stop docker

刪除對應文件:yum remove docker.x86_64 docker-client.x86_64 docker-common.x86_64 -y

查看下docker rpm源:rpm -qa | grep docker

刪除對應路徑:rm -rf /var/lib/docker

注釋:

本次也是由於業務需要,需要重新搭建新的測試伺服器,這也是搭建中的一個插曲,後續會使用 Jenkins 進行相關的持續集成,大家一起學習分享!~

D. 介面自動化測試環境搭建jmeter+ant+git+jenkins

1、安裝java

方式一:安裝java環境:yum install java-1.8.0-openjdk* -y

使用命令檢查是否安裝成功 java -version

到此安裝結束了。這樣安裝有一個好處就是不需要對path進行設置,自動就設置好了。jdk安裝在/usr/lib/jvm目錄下

方式二:先下載對應版本到本地,然後解壓縮,配置環境變數(詳細步驟網路即可)

2、安裝jmeter

(1)登錄自己伺服器,在usr/local下創建文件夾jmeter,命令mkdir jmeter

(2)通過官網下載jmeter到本地

(3)通過xhell上傳到對應的目錄(cd到要上傳的目錄)

(4)yum -y install lrzsz(安裝了lrzsz,執行該命令是因為伺服器有的文件不讓上傳。讓上傳就不用執行)

(5)使用 rz -y命令進行文件上傳,此時會彈出上傳的窗口,進行上傳即可

(6)上傳成功之後進行解壓 unzip apache-jmeter-5.4.zip

(7)配置環境變數vi /etc/profile

esc+shift # 鍵盤同時按住,退出編輯模式

:wq # 保存退出

:q # 不保存退出

添加如下內容:

# set Jmeter enviroment

export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.4

export PATH=${PATH}:${JMETER_HOME}/bin

(8)source /etc/profile # 使配置文件生效

(9)jmeter -version

3、安裝ant

(1)在usr/local下創建文件夾ant,命令mkdir ant

(2)通過官網下載ant到本地

(3)使用 rz -y命令進行文件上傳,此時會彈出上傳的窗口,進行上傳即可 sz 文件名(伺服器文件下載到本地)

(4)上傳成功之後進行解壓 unzip

(5)配置環境變數vi /etc/profile

# set Ant enviroment

export ANT_HOME=/usr/local/ant/apache-ant-1.10.10

export PATH=${PATH}:${ANT_HOME}/bin

(6)source /etc/profile # 使配置文件生效

(7)ant -version

4、ant的配置

(1)將jmeter安裝包extras文件夾里ant-jemter-1.1.1.jar 復制到antlib下

cp ant-jmeter-1.1.1.jar /usr/local/ant/apache-ant-1.10.10/lib

(2)進入apache-jmeter-3.0extras運行ant ,查看該目錄下是否出現Test.jtl、Test.html文件,若有,則構建成功

5、編寫Ant的build.xml文件

(1)創建Jmeter_Test目錄,放在/usr/local/下

(2)Jmeter_Test目錄下創建build.xml、ResultLog(html,jtl)、Script(放腳本)

(3)build.xml文件內容去https://www.cnblogs.com/L-Test/p/9736808.html下復制,需要修改里邊的路徑

6、jenkins安裝

(1)Jenkins下載地址:https://jenkins.io/download/

(2)下載的是jenkins.war

(3)在Linux下啟動Jenkins有兩種方式,一種是在jenkins.war的存放目錄下使用命令java -jar jenkins.war啟動,

另外一種是把jenkins.war放在tomcat的webapps目錄下,然後啟動tomcat就可以了(本次用的第一種)

(4)在瀏覽器中輸入http://伺服器ip:8080/jenkins/

如果是用的阿里雲伺服器,啟動成功之後,在瀏覽器訪問,無法訪問。解決辦法就是登陸阿里雲伺服器修改一下安全規則,把埠范圍調大

(5)訪問成功之後輸入管理員密碼

(6)安裝推薦的插件,創建管理員用戶

7、jenkins的其他配置

(1)修改為中文依賴的三個插件localization-zh-cn、locale、localization-support

jenkins插件下載地址https://blog.csdn.net/qq_39530199/article/details/90266654

(2)不知道依賴於那個插件,可以看看manage Jenkins里邊的報錯 plugin is missing

8、git的安裝

(1)git下載地址:https://mirrors.edge.kernel.org/pub/software/scm/git/

(2)usr/local下新建git目錄,cd到git,安裝包上傳上來, tar -zxvf v2.17.0.tar.gz

(3)安裝編譯源碼所需依賴,命令為: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl- ExtUtils-MakeMaker 耐心等待安裝,出現提示輸入y即可;

(4)安裝依賴時,yum自動安裝了Git,需要卸載舊版本Git,命令為: yum remove git 出現提示輸入y即可;

(5)進入解壓後的文件夾,命令 cd git-2.17.0 ,然後執行編譯,命令為 make prefix=/usr/local/git all 耐心等待編譯即可;

(6)安裝Git至/usr/local/git路徑,命令為 make prefix=/usr/local/git install ;

(7)打開環境變數配置文件,命令 vim /etc/profile ,在底部加上Git相關配置信息

# set Git enviroment

export GIT_HOME=/usr/local/git

export PATH=$GIT_HOME/bin:$PATH

(8)git version

9、jenkins安裝相應插件

(1)安裝源碼管理選擇git需要的插件git、git-server、git-client、github-api、plain-credentials、github

上傳插件的時候可能會報錯,可以把插件上傳順序改一下在上傳

(2) jenkins設置git的安裝路徑,點擊全局工具配置/usr/local/git/bin/git(whereis git 命令可查看)

(3)windows本地安裝git,把代碼推送到github(需要在github創建一個倉庫),參考自動化測試的 《

(4)jenkins配置源碼管理選擇git,地址輸入github項目地址,賬號可以先在jenkins憑據配置中添加github賬號

輸地址或賬號的時候可能會報403的錯誤。解決辦法刷新一下或者 在Configure Global Security中開啟 啟用代理兼容

(5)配置完源碼管理,直接進行構建,代碼自動下載到/root/.jenkins/workspace/git/路徑下

10、接下來需要把build.xml中腳本路徑改為/root/.jenkins/workspace/git/進行構建,可以在Github里提交一個jmx文件構建一下試試

E. 怎麼軟體測試啊

軟體測試方法

軟體測試的基本方法
單元測試的基本方法
綜合測試的基本方法
確認測試的基本方法
系統測試的基本方法
軟體測試的基本方法

軟體測試的方法和技術是多種多樣的。
對於軟體測試技術,可以從不同的角度加以分類:

從是否需要執行被測軟體的角度,可分為靜態測試和動態測試。
從測試是否針對系統的內部結構和具體實現演算法的角度來看,可分為白盒測試和黑盒測試;

1、黑盒測試

黑盒測試也稱功能測試或數據驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序介面進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數鋸而產生正確的輸出信息,並且保持外部信息(如資料庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因果圖、錯誤推測等,主要用於軟體確認測試。 「黑盒」法著眼於程序外部結構、不考慮內部邏輯結構、針對軟體界面和軟體功能進行測試。「黑盒」法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。

2、白盒測試

白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程序內部的結構測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟體驗證。

「白盒」法全面了解程序內部邏輯結構、對所有邏輯路徑進行測試。「白盒」法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程序的邏輯著手,得出測試數據。貫穿程序的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設計規范,即程序本身是個錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發現不了一些與數據相關的錯誤。

3.ALAC(Act-like-a-customer)測試

ALAC測試是一種基於客戶使用產品的知識開發出來的測試方法。ALAC測試是基於復雜的軟體產品有許多錯誤的原則。最大的受益者是用戶,缺陷查找和改正將針對哪些客戶最容易遇到的錯誤。

單元測試的基本方法

單元測試的對象是軟體設計的最小單位模塊。單元測試的依據是詳細設描述,單元測試應對模塊內所有重要的控制路徑設計測試用例,以便發現模塊內部的錯誤。單元測試多採用白盒測試技術,系統內多個模塊可以並行地進行測試。
單元測試任務

單元測試任務包括:1 模塊介面測試;2 模塊局部數據結構測試;3 模塊邊界條件測試;4 模塊中所有獨立執行通路測試;5 模塊的各條錯誤處理通路測試。

模塊介面測試是單元測試的基礎。只有在數據能正確流入、流出模塊的前提下,其他測試才有意義。測試介面正確與否應該考慮下列因素:
1 輸入的實際參數與形式參數的個數是否相同;
2 輸入的實際參數與形式參數的屬性是否匹配;
3 輸入的實際參數與形式參數的量綱是否一致;
4 調用其他模塊時所給實際參數的個數是否與被調模塊的形參個數相同;
5 調用其他模塊時所給實際參數的屬性是否與被調模塊的形參屬性匹配;
6調用其他模塊時所給實際參數的量綱是否與被調模塊的形參量綱一致;
7 調用預定義函數時所用參數的個數、屬性和次序是否正確;
8 是否存在與當前入口點無關的參數引用;
9 是否修改了只讀型參數;
10 對全程變數的定義各模塊是否一致;
11是否把某些約束作為參數傳遞。

如果模塊內包括外部輸入輸出,還應該考慮下列因素:
1 文件屬性是否正確;
2 OPEN/CLOSE語句是否正確;
3 格式說明與輸入輸出語句是否匹配;
4緩沖區大小與記錄長度是否匹配;
5文件使用前是否已經打開;
6是否處理了文件尾;
7是否處理了輸入/輸出錯誤;
8輸出信息中是否有文字性錯誤;

檢查局部數據結構是為了保證臨時存儲在模塊內的數據在程序執行過程中完整、正確。局部數據結構往往是錯誤的根源,應仔細設計測試用例,力求發現下面幾類錯誤:
1 不合適或不相容的類型說明;
2變數無初值;
3變數初始化或省缺值有錯;
4不正確的變數名(拼錯或不正確地截斷);
5出現上溢、下溢和地址異常。

除了局部數據結構外,如果可能,單元測試時還應該查清全局數據(例如FORTRAN的公用區)對模塊的影響。

在模塊中應對每一條獨立執行路徑進行測試,單元測試的基本任務是保證模塊中每條語句至少執行一次。此時設計測試用例是為了發現因錯誤計算、不正確的比較和不適當的控制流造成的錯誤。此時基本路徑測試和循環測試是最常用且最有效的測試技術。計算中常見的錯誤包括:
1 誤解或用錯了算符優先順序;
2混合類型運算;
3變數初值錯;
4精度不夠;
5表達式符號錯。

比較判斷與控制流常常緊密相關,測試用例還應致力於發現下列錯誤:
1不同數據類型的對象之間進行比較;
2錯誤地使用邏輯運算符或優先順序;
3因計算機表示的局限性,期望理論上相等而實際上不相等的兩個量相等;
4比較運算或變數出錯;
5循環終止條件或不可能出現;
6迭代發散時不能退出;
7錯誤地修改了循環變數。

一個好的設計應能預見各種出錯條件,並預設各種出錯處理通路,出錯處理通路同樣需要認真測試,測試應著重檢查下列問題:
1輸出的出錯信息難以理解;
2記錄的錯誤與實際遇到的錯誤不相符;
3在程序自定義的出錯處理段運行之前,系統已介入;
4異常處理不當;
5錯誤陳述中未能提供足夠的定位出錯信息。

邊界條件測試是單元測試中最後,也是最重要的一項任務。眾的周知,軟體經常在邊界上失效,採用邊界值分析技術,針對邊界值及其左、右設計測試用例,很有可能發現新的錯誤。

單元測試過程

一般認為單元測試應緊接在編碼之後,當源程序編制完成並通過復審和編譯檢查,便可開始單元測試。測試用例的設計應與復審工作相結合,根據設計信息選取測試數據,將增大發現上述各類錯誤的可能性。在確定測試用例的同時,應給出期望結果。

應為測試模塊開發一個驅動模塊(driver)和(或)若干個樁模塊(stub),下圖顯示了一般單元測試的環境。驅動模塊在大多數場合稱為「主程序」,它接收測試數據並將這些數據傳遞到被測試模塊,被測試模塊被調用後,「主程序」列印「進入-退出」消息。

驅動模塊和樁模塊是測試使用的軟體,而不是軟體產品的組成部分,但它需要一定的開發費用。若驅動和樁模塊比較簡單,實際開銷相對低些。遺憾的是,僅用簡單的驅動模塊和樁模塊不能完成某些模塊的測試任務,這些模塊的單元測試只能採用下面討論的綜合測試方法。

提高模塊的內聚度可簡化單元測試,如果每個模塊只能完成一個,所需測試用例數目將顯著減少,模塊中的錯誤也更容易發現。

F. linux 的環境搭建(二)--redis單機環境、生產環境、集群環境的搭建

一、目錄
1、工具
2、安裝tcl
3、安裝單機版redis
4、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5、安裝redis cluster
二、工具
2.1、tcl8.6.1-src.tar.gz
2.2、ruby-2.3.1.tar.gz
2.3、redis-4.1.1.gem
2.4、redis-3.2.8.tar.gz
2.5、openssl-1.0.2r.tar.gz
三、安裝tcl(安裝redis必須先要安裝tcl)

3.1、把tcl8.6.1-src.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下

四、安裝單機版redis
4.1、把redis-3.2.8.tar.gz通過WinSCP上傳到虛擬機中的/usr/local目錄下

4.2、依次運行如下命令:
tar -zxvf redis-3.2.8.tar.gz 解壓文件
cd redis-3.2.8
make && make test && make install

五、把redis設置為daemon進程,每次系統啟動,redis進程一起啟動
5.1、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_6379,6379是我們希望這個redis實例監聽的埠號

5.2、修改redis_6379腳本的第6行的REDISPORT,設置為相同的埠號(默認就是6379)

protected-mode no 取消保護模式,保護模式只能127.0.0.1訪問
daemonize yes 讓redis以daemon進程運行
pidfile /var/run/redis_6379.pid 設置redis的pid文件位置
bind 192.168.3.110
port 6379 設置redis的監聽埠號
dir /var/redis/6379 設置持久化文件的存儲位置
logfile /var/log/redis/6379.log 設置日誌文件位置
5.6、啟動redis,依次執行:
cd /etc/init.d,
chmod 777 redis_6379,賦讀寫執行的許可權(chmod -R 777 * 是遞歸把該目錄下的所有文件和其子文件全部賦許可權)
./redis_6379 start 啟動

5.7、確認redis進程是否啟動,ps -ef | grep redis

5.8、讓redis跟隨系統啟動自動啟動

5.9、重啟系統,不手動啟動redis,直接連接redis,可以連接上,表示配置成功

此時一個單機版的redis的生產環境已經搭建好了,每次伺服器重啟,redis都會自動的啟動

六、安裝redis cluster
(redis cluster集群,要求至少3個master,去組成一個高可用,健壯的分布式的集群,每個master都建議至少給一個slave,3個master,3個slave)
6.1、前提,我在其它機器上啟動了六個redis(安裝步驟都如下)
2.2、創建三個目錄:
mkdir -p /etc/redis-cluster 存放集群配置信息,自動生成配置
mkdir -p /var/log/redis redis日誌
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
6.3、將redis的utils目錄下的redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_7001,7001是我們希望這個redis實例監聽的埠號,並修改redis_7001配置文件中的REDISPORT=7001
6.4、修改/etc/redis/7001.conf中的部分配置為生產環境

6.5、完成了一個redis環境的配置,依次再配置其餘五個,分別為7002、7003、7004、7005、7006,每個啟動腳本內,都修改對應的埠號

6.6、啟動6個redis實例
6.7、創建集群(需要安裝ruby、rubygems)

上述命令在部分機器上是可以直接運行完成,成功安裝的,但在部分機器上運行第三條命令時會提示ruby版本太低、openssl找不到的問題,下面依次解決這兩個問題:

6.8、再次運行gem install redis命令,報出兩個錯誤

6.9、再次運行gem install redis命令,報出一個錯誤

6.10、再次運行gem install redis命令,報出一個錯誤

6.11、再次運行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-4.1.1
Parsing documentation for redis-4.1.1
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )
1 gem installed
運行成功

此時Redis安裝好,此三個工具也安裝好了,這時我們來做一個Redis集群測試,在一台伺服器中創建了6個Redis實例,開啟6個Redis服務
redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006

此時一個redis集群環境就已經搭建好了,可以通過redis-trib.rb check 192.168.3.105:7003命令查看集群幾點的信息

[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004

redis cluster的優點:讀寫分離+高可用+多master
讀寫分離:每個master都有一個slave
高可用:master宕機,slave自動被切換過去
多master:橫向擴容支持更大數據量

熱點內容
androidmime 發布:2025-01-31 22:34:44 瀏覽:782
ftp和http的中文含義是 發布:2025-01-31 22:33:48 瀏覽:402
sqlite3存儲圖片 發布:2025-01-31 22:27:14 瀏覽:162
sqlserverphp 發布:2025-01-31 22:22:55 瀏覽:877
曲馬多存儲 發布:2025-01-31 22:22:52 瀏覽:538
緩存兒歌 發布:2025-01-31 22:21:26 瀏覽:528
學java有發展嗎 發布:2025-01-31 21:44:45 瀏覽:569
HBX編程 發布:2025-01-31 21:39:26 瀏覽:161
資料庫精品課 發布:2025-01-31 21:38:14 瀏覽:421
sqlsever語句 發布:2025-01-31 21:34:57 瀏覽:145