1.1為什么需要軟件測試?
測試流程:(1)將所有的經(jīng)理根據(jù)客戶需求來編寫需求文檔
(2)開發(fā)根據(jù)需求文檔來編寫代碼
? ? ? ? ?測試需要根據(jù)需求文檔編寫測試計(jì)劃
(3)開發(fā)人員實(shí)現(xiàn)代碼
? ? ? ? ?測試人員編寫測試用例
(4)編碼結(jié)束之后由開發(fā)人員將代碼上傳測試人員需要將代碼下載并實(shí)現(xiàn)冒煙測試冒煙測試通過后 在實(shí)現(xiàn)全面測試(如果發(fā)現(xiàn)bug需要將bug提交給開發(fā)人員 開發(fā)解決問題之后測試人員需要進(jìn)行回? 歸測試)
(5)測試人員需要將測試報(bào)告以及測試用例整理文檔方便項(xiàng)目版本迭代的使用
1.2為啥選擇測試
(1)測試需求越來越多
(2)開發(fā)人員是來創(chuàng)造世界乏屯,測試人員是將世界變得更美好
為什么不讓開發(fā)人員自己做測試?
1磨确、很多測試人員本身就是開發(fā)出身
(1)從專業(yè)角度去看.讓專業(yè)的人員去做專事
(2)從思維定勢:開發(fā)永遠(yuǎn)的真諦是我的代碼沒問題
(3)從測試力度:開發(fā)人員不會(huì)舍得
(4)從客戶角度:用戶會(huì)有千奇百怪的想法或者是超出想象的思維
1.3.2軟件測試的作用?
(1)通過測試工作可以發(fā)現(xiàn)并修復(fù)軟件中存在的缺陷,從而使軟件的壽命增長客戶使用信心增強(qiáng)
(2)測試可以記錄軟件在運(yùn)行過程中產(chǎn)生的一些數(shù)據(jù)從而為決策提供數(shù)
(3)測試可以降低同類產(chǎn)品開發(fā)遇到的風(fēng)險(xiǎn)
1.4軟件測試的原則:
(1)測試證明軟件是存在缺陷的
(2)不能執(zhí)行窮盡測試
(3)缺陷存在群集現(xiàn)象(2:8原則 20%核心功能 )
(4)測試應(yīng)提早介入(從定義需求的時(shí)候就有了測試)
(5)某些測試需要依賴特殊環(huán)境(操作系統(tǒng)瀏覽器不同得到手機(jī)或者手機(jī)版本)
(6)殺蟲劑現(xiàn)象
(7)不存在缺陷謬論(開發(fā)人員說自己的代碼沒問題的時(shí)候你怎么辦明郭?)
測試級別:
軟件開發(fā)都由自己的開發(fā)模型(瀑布v ?vv ?h)
測試人員會(huì)根據(jù)對軟件的操作步驟進(jìn)行測試級別分類:
(1)單元測試(UT)
在軟件測試中,單元就是組成軟件的最小單位(類函數(shù)組件)
(2)集成測試(IT)
將多個(gè)不同的模塊進(jìn)行組合在一起進(jìn)行驗(yàn)證(接口是否ok)
(3)系統(tǒng)測試(ST)
測試人員充當(dāng)用戶對軟件進(jìn)行測試
(4)驗(yàn)收測試
軟件發(fā)布之后由客戶實(shí)現(xiàn)買單
1.6系統(tǒng)測試分類:
1.功能測試驗(yàn)證當(dāng)前軟件的主體功能是否ok
2.兼容性測試驗(yàn)證當(dāng)前軟件在不同的環(huán)境下是否ok
3.安全測試驗(yàn)證軟件是否只有授權(quán)用戶提供功能是使用
4.性能測試驗(yàn)證軟件是否消耗其他的資源
? 1.1測試用例的定義
為了特定目的而設(shè)計(jì)的一組輸入測試丰泊,執(zhí)行條件薯定,預(yù)期結(jié)果為了驗(yàn)證該功能是否滿足需求。
測試用例作用:
測什么怎么測
Eg: 手機(jī)
按開機(jī)鍵相當(dāng)于一組輸入測試
手機(jī)是否有電執(zhí)行條件
能夠正常顯示預(yù)期結(jié)果
手動(dòng)按開機(jī)鍵測試過程
1.2如何編寫測試用例
1. 測試用例都是wps表來進(jìn)行編寫
測試用例中含有
(1)編號該用例的編號
日期
(2)測試人員
(3) 項(xiàng)目
(4) 分項(xiàng)目
(5)執(zhí)行條件
(6)測試過程
(7) 預(yù)期結(jié)果
(8) 實(shí)際結(jié)果
在公司內(nèi)測試人員需要大量的編寫測試用例一天至少30-50條測試用例的編寫
測試用例的模板公司都不一致
1.3 bug的優(yōu)先級
1.致命缺陷
2.嚴(yán)重bug
3.一般bug
1.4測試用例的設(shè)計(jì)方法
等價(jià)類劃分
使用場景:在有輸入框使用等價(jià)類劃分以及邊界值法混合使用
按照需求將窮盡數(shù)據(jù)進(jìn)行分類區(qū)分去有效的數(shù)據(jù)和無效的數(shù)據(jù)
有效數(shù)據(jù)成為有效等價(jià)類
無效數(shù)據(jù)成為無效等級類
邊界值
使用場景:在有輸入框使用等價(jià)類劃分以及邊界值法混合使用
有效邊界值1-100
無效邊界值-1 ---負(fù)數(shù)的無窮盡
???? 101--整數(shù)的無窮盡
3.因果法
應(yīng)用場景:
一個(gè)界面有多個(gè)操作瞳购,多個(gè)操作之間有一定的組合關(guān)系或者是限制關(guān)系
輸入不同的操作會(huì)產(chǎn)生不同的效果
]4.場景法
應(yīng)用場景:
在界面沒有過多的填寫項(xiàng)话侄,所有的操作都是通過鼠標(biāo)的單擊雙擊
金融類游戲類硬件交互類
ATM取款機(jī)
取款失敗的場景:
1.密碼錯(cuò)誤
2. 賬號余額不足
3. Atm中沒有錢
4.吞卡
5.超限
6. 無效的銀行卡
7非銀行卡
5. 判定表
6.正交
7. 隨機(jī)法
使用場景:列表數(shù)據(jù)中實(shí)現(xiàn)隨機(jī)數(shù)據(jù)
在無窮中的數(shù)據(jù)中隨機(jī)選擇進(jìn)行測試
1.1測試強(qiáng)度
測試強(qiáng)度在有需求文檔或者api的時(shí)候可以根據(jù)需求文檔測試
在沒有測試文檔或者是api的時(shí)候,可以根據(jù)個(gè)人經(jīng)驗(yàn)是否測試
考慮的因素:
1. 2個(gè)整數(shù)(正整數(shù) 負(fù)整數(shù))
2. 2個(gè)輸入框是否為空
3. 特殊符號
4. 中英文字母/漢字
5.提醒框/輸入框是否重置
Bug是指在代碼中存在的
1.2軟件缺陷
定義:缺陷就是軟件的問題学赛,最終表現(xiàn)為沒有客戶的需求
1.3哪些屬于軟件缺陷
1. 軟件沒有達(dá)到規(guī)格說明書定義的功能
2. 軟件出現(xiàn)了規(guī)格說明書上指明不能存在的錯(cuò)誤
3.軟件功能超出了說明書上的范圍
4.軟件測試人員或者用戶覺得不友好的
5.軟件未達(dá)到說明書上應(yīng)該具有的功能
1.4軟件缺陷的表現(xiàn)形式
1.功能上沒有實(shí)現(xiàn)或者部分沒有實(shí)現(xiàn)
2.設(shè)計(jì)不合理功能不明確的邏輯不清楚的或者是邏輯本身就是存在矛盾
3. 實(shí)際結(jié)果與預(yù)期結(jié)果不同
4. 沒有達(dá)到規(guī)格要求說明書上的要求性能指標(biāo)
5. 運(yùn)行有錯(cuò)的崩潰中斷頁面混亂
6.數(shù)據(jù)不正確精度不夠不完整或者是格式不統(tǒng)一
7.用戶不能接受的問題年堆。如果存取時(shí)間過長,頁面不美觀小廣告太多
8.硬件或者軟件存在的其他問題
1.5軟件缺陷的狀態(tài)(生命周期)
1. 提交--測試人員提交發(fā)現(xiàn)的缺陷給開發(fā)
2. 打開--將缺陷轉(zhuǎn)一個(gè)待處理的狀態(tài)
3.拒絕--開發(fā)者不認(rèn)為這是一個(gè)缺陷
4. 修復(fù)--開發(fā)者將缺陷進(jìn)行修改
5.關(guān)閉--測試人將進(jìn)行回歸測試之后認(rèn)為該缺陷已經(jīng)解決后
6. 推遲--將問題持續(xù)到下一個(gè)版本中在去解決 但是要記錄詳細(xì)的修復(fù)日期或者版本
測試人員新提交的缺陷為新建狀態(tài)盏浇,在確認(rèn)有效后將缺陷狀態(tài)改為打開狀態(tài)变丧,
開發(fā)人員修改后已修復(fù)狀態(tài)測試人員需要進(jìn)行回歸測試,如果驗(yàn)證問題已解決將狀態(tài)改為修復(fù)狀態(tài)如果經(jīng)過回歸測試驗(yàn)證缺陷依然存在將缺陷的狀態(tài)改為打開狀態(tài)讓開發(fā)再次修復(fù)绢掰。如果開發(fā)人認(rèn)為此缺陷需要延期修復(fù)將缺陷的狀態(tài)改為延期(推遲狀態(tài))
延期的時(shí)候有項(xiàng)目負(fù)責(zé)人開發(fā)主管測試主管確認(rèn)才可以延期否則還是打開狀態(tài)
1.6軟件缺陷的嚴(yán)重程度進(jìn)行劃分
1. low ????--表面性錯(cuò)誤
2.Medium ?--影響到一個(gè)對立的功能痒蓬,僅僅發(fā)生在特定條件下 與需求定義的不臺一直 斷斷續(xù)續(xù)的出現(xiàn)的問題
3. High ?????--功能點(diǎn)沒有實(shí)現(xiàn)不符合客戶的需求 導(dǎo)致丟失數(shù)據(jù)
4. Veryhigh ??--頻繁死機(jī) 大部分功能不能使用
5.Critical ????--系統(tǒng)癱瘓 異常退出 死循環(huán) 嚴(yán)重計(jì)算失誤
結(jié)局缺陷的優(yōu)先級
1.low ?--時(shí)間和資源允許情況下進(jìn)行修復(fù)
2.Medium --不會(huì)延遲發(fā)布
3. Highh ?--必須在發(fā)布之前解決
4. Veryhigh ???--必須解決 ?
5. Critical ???-- ?
1.7軟件的缺陷的分類:
1.系統(tǒng)缺陷
2.數(shù)據(jù)缺陷
3.數(shù)據(jù)庫缺陷
4.接口缺陷
5.功能缺陷
6.安全性缺陷
7.兼容行缺陷
8.性能缺陷
9.界面缺陷?????
17缺陷報(bào)告
1.7.1書寫規(guī)范:
1.標(biāo)題簡潔 ?提供缺陷的本質(zhì)信息即可
2.復(fù)現(xiàn)的步驟要詳細(xì) 可以用數(shù)字編號(測試用例的編號)
3.實(shí)際結(jié)果要描述浮現(xiàn)后的結(jié)果
4.列出期望結(jié)果(在測試用例中存在期望結(jié)果可以不寫)
5.提供條件(可以在測試用例)
6.提供嚴(yán)謹(jǐn)?shù)臏y試報(bào)告給開發(fā)人員
缺陷報(bào)告的使用以及測試用例的案列https://blog.csdn.net/weixin_41948075/article/details/89287926
? ? ? ? ? ? ? ? ? ? ? ? ? ?Mysql
1.1數(shù)據(jù)庫的介紹:
數(shù)據(jù)庫從小到大的分類:
大型數(shù)據(jù)庫Oracle ?Db2
中型數(shù)據(jù)庫sqlserver
小型數(shù)據(jù)庫mysql
微型數(shù)據(jù)庫sqlite
1.2數(shù)據(jù)庫的安裝
數(shù)據(jù)庫分為服務(wù)端和客戶端
客戶端分為常用的可視化工具類:貓抓小海豚
安裝的注意事項(xiàng):
1.如果安裝失敗需要在注冊表將數(shù)據(jù)完全刪除(運(yùn)行輸入regedit使用ctrl+F 查找并刪除)
2.安裝的時(shí)候一定要更改編碼utf-8
3. 允許多個(gè)人員多數(shù)據(jù)庫的訪問
4. Mysql的端口號 ?3306 ??mysql只有用戶權(quán)限 root
5. 卸載mysql的服務(wù)端 ?同時(shí)將文件安裝后的文件夾刪除 ?
1.3數(shù)據(jù)庫的數(shù)據(jù)類型
整數(shù)類型int ?bigint
小數(shù)類型float ?double
字符串類型char(10)數(shù)據(jù)庫會(huì)分配一個(gè)長度為10個(gè)空間 長度是不可以 發(fā)生改變
Varchar(10)數(shù)據(jù)庫會(huì)分配一個(gè)長度為10個(gè)空間 長度是可以發(fā)生改變的
時(shí)間類型date ??time ?datatime ??timestamp(時(shí)間戳)
大數(shù)據(jù)類型blob ?clob
文本類型text
1.4 sql的分類
DDL數(shù)據(jù)庫定義語言 ?????create ?alter ?drop (對庫和表的操作)
DCL數(shù)據(jù)庫控制語言 ?????grant ?revoke
DML數(shù)據(jù)庫的操作語言 ????insert into ???update ?delete
DQL數(shù)據(jù)庫的查詢語言 ?????select ?order by ?group by ?limit ?inner join ?left join ???right ?join
1.5 sql的注意事項(xiàng)
1. mysql不區(qū)分大小寫
2.數(shù)據(jù)庫的中注釋以 # ??/**/ ??--
3.數(shù)據(jù)庫的 “”??‘’沒有區(qū)別
1.6sql表語句
1. 查看所有數(shù)據(jù)庫
Show databases ?
2. 新建數(shù)據(jù)庫
Create database數(shù)據(jù)庫的庫名 ?
3.刪除數(shù)據(jù)庫
Drop database數(shù)據(jù)庫的庫名
4. 切換數(shù)據(jù)庫
Use數(shù)據(jù)庫庫名
5.查看當(dāng)前數(shù)據(jù)庫的表
???Show tables
1創(chuàng)建表
Create table表名(
字段名數(shù)據(jù)類型約束條件,
字段名1數(shù)據(jù)類型1,
字段名2數(shù)據(jù)類型2,
)
Sql約束條件:
自增auto_increment ???
主鍵primary key
非空not null
唯一unique
默認(rèn)值default
外鍵foreign key(實(shí)現(xiàn)多表的聯(lián)查)
Eg:
??Crate table student(
Id ?int ?primary key ?auto_increment unique,
Stu_id ?int not null unique,
Stu_name varchar(20),
Stu_sex default sex(‘男’),
????Stu_age int
)
1.6.2對表結(jié)構(gòu)的操作
查看表結(jié)構(gòu)
Desc表名 ??查看的是表的 字段名 ?數(shù)據(jù)類型 約束條件
查看建表語句
???????? Show crate table表名
修改表名
Alter table舊表名 rename 新表名
修改字段
???? Alter table表名 change 字段名 新字段名 數(shù)據(jù)類型
添加字段
Alter table表名 add 字段名 數(shù)據(jù)類型
刪除字段
Alter table表名 drop 字段名
刪除表
??? Drop table表名
1.6.3對表的增 刪 ?改
????????????? 增:
[if !supportLists]1.?[endif]單條數(shù)據(jù)的增加
Insert ?into表名(字段名) values (字段值)
[if !supportLists]2.?[endif]多條數(shù)據(jù)的增加
?Insert ?into表名 (字段名) values (字段值1),(字段值2),(字 段3).曼月。谊却。。哑芹。
刪除:delete from表名 where 刪除條件
[if !supportLists]1.?[endif]物理刪
將數(shù)據(jù)從數(shù)據(jù)庫中刪除
[if !supportLists]2.?[endif]邏輯刪
將數(shù)據(jù)的狀態(tài)從1改為 0 ?(0 為不顯示 ?1顯示)
????????修改:
??? Update form表名 set ?字段名=字段值 where 條件
?? 跟新一行一列
???? Update表 set 字段名 = 字段值 where id = 1
更新一行多列
Update表 set 字段名 = 字段值 where ?name=‘張鵬’
更新多行一列
Update表名 set 字段名 = 字段值 where id>=3 and id <=5
跟新多行多列
Update表名 set 字段名 = 字段值 where ?id = 2 or id= 3
跟新多個(gè)字段
Update表名 set 字段名1= 字段值 1, 字段2 = 字段值2 where 條件
1.6.4對表的查詢
?? 1.?查詢所有:(*代表的是通配符 代表所有數(shù)據(jù) 可以換成 具體的字段查詢)
Select * from表名
2.條件查詢
Select * from表名 where 條件
1. 區(qū)間查詢
Select ?* from表名 where id >3 and id<5 ???
Select ?* from表名 where id >3 or id<5 ???
[if !supportLists]2.?[endif]排序查詢order by
升序asc(mysql中默認(rèn)的就是asc)
降序desc
Select * from表名 order by stu_age asc/desc
1.分頁查詢limit初始值,記錄行數(shù)(每頁顯示的行數(shù))
??Select * from stu limit 0,3
每頁記錄數(shù)pagesize
頁碼數(shù)pageNumber
Limit(pageNumber-1) * pagesize ??, ?pagesize
真分頁將查詢出來的所有數(shù)據(jù)直接分頁
假分頁將查詢出來的所有數(shù)據(jù)在頁面展示的時(shí)候在進(jìn)行分頁
2.去重查詢distinct一般和聚合函數(shù)一起使用
3. 模糊查詢like
%相當(dāng)于任意字符
_相當(dāng)于一個(gè)字符
Select * from表名 where ?字段名 like ‘%張%’
Select * from表名 where ?字段名 like ‘張_’
4. 分組查詢group by
Select * from表名 group by sex ?=‘男’
5.having實(shí)現(xiàn)分組進(jìn)行查詢
1.7聚合函數(shù)
1.7.1求和 ?
?? Sum(字段名)
? Select ?sum (stu_age) from表名
1.7.2求平均
Avg(字段名)
Select ?avg(stu_age) from表名
1.7.3求最大值
Max(字段名)
Select ?max(stu_age) from表名
1.7.4求最小值
Select ?min(stu_age) from表名
1.7.5求總的行數(shù)
Select ?count(stu_id) from表名
1.8單表查詢的公式
Select分組條件 或者 聚合函數(shù)
From表名
Where條件 1
Group by分組條件
Having分組后的條件
Order by排序條件
Limit起始位置,記錄數(shù)
1.9多表聯(lián)查
--實(shí)現(xiàn)使用笛卡爾積 ?
--內(nèi)連接 ??INNER JOIN ?
--外連接 ??左外鏈 ?LEFT JOIN
-- 右外聯(lián)RIGHT JOIN
-- student和中間表 ?stu_subject 實(shí)現(xiàn)相連
???select stu_name,sj.subjectname from student ?as stu
???INNER JOIN stu_subject ?as stu_sub
???ON stu.stu_id = stu_sub.stu_id
--中間表和 subject 表實(shí)現(xiàn)相連
???INNER JOIN `subject` as sj
???ON stu_sub.subjectnumber = sj.subjectnumber
1.2linux
在liunx中
/根目錄
Etc安裝軟件后需要在etc進(jìn)行修改配置文件
Home用戶目錄
Bin存放二進(jìn)制文件
Ure是用來存放文件的類似于window的具體e盤符
Dev是用來掛外接設(shè)備
1.3linux的常用命令
Ls展示數(shù)據(jù)
Cd進(jìn)入的目錄下
Mkdir創(chuàng)建文件夾
Touch創(chuàng)建文件
Vi文件名 ?
I:編輯
Esc退出編輯狀態(tài)
:wq進(jìn)行保存
Cat文件名 ?查看文件內(nèi)容
Rm刪除文件名
Rm -r刪除文件夾
Mv是重命名的話 ?mv 舊文件名 新文件名
Mv是移動(dòng) ??mv 文件名 移動(dòng)的目的地的路徑
Cp復(fù)制 ???cp ?源文件 復(fù)制到的路徑名
ADB命令
1.?連接手機(jī)
2.?打開開發(fā)者模式
3.?打開usb調(diào)試
4.?在黑窗口中輸入 ??獲取設(shè)備列表: ?adb devices???終止adb進(jìn)程: adb kill-server
5.?adb install apk直接路徑,這種安裝必須是沒有這個(gè)apk,如果手機(jī)上有這個(gè)apk是安裝不成功的,如果有apk想安裝必須使用 adb install -r apk直接路徑,這樣安裝的apk以前的數(shù)據(jù)是不會(huì)消失的會(huì)在手機(jī)上實(shí)現(xiàn)安裝
6. 卸載apk, adb uninstall 應(yīng)用包名字:?在Android?注冊文件里面有個(gè)package里面可以找到包名
注意1.將apk文件后綴名改為zip 實(shí)現(xiàn)解壓
2.需要jar包 AXMLPrinter2.S.jar 并放在解壓后的文件統(tǒng)一目錄下
]3. 在路徑上輸入cmd
4. java -jar AXMLPrinter2.S.jar AndroidManifest.xml >> AndroidMainfest1.xml(自定義)
5.實(shí)現(xiàn)反編譯在多出來的文件中文件名自定義的里面尋找包名package="com.codeest.geeknews"
6. 在黑窗口中輸入adb uninstall 應(yīng)用包名字實(shí)現(xiàn)卸載
???卸載apk同時(shí)保留數(shù)據(jù)和緩存: adb shell pm uninstall -k 應(yīng)用包名字
7. 獲取當(dāng)前手機(jī)所有的包名:adb shell pm list packages
8. 清除指定應(yīng)用緩存:adb shell pm clear 包名
9. 獲取應(yīng)用路徑: adb shell pm path包名:
10.從Android?設(shè)備下載文件到pc, adb pull <remote> <local>
???Remote: Android?手機(jī)文件的直接路徑
??Local: 需要下載到的地方的直接路徑
11.列出目錄內(nèi)容: adb shell ls
12: adb shell :進(jìn)入手機(jī)里面的環(huán)境里面:
(1): cd 文件名字切換目錄
(2): ls 展示所有文件
13: adb shell netstat: 網(wǎng)絡(luò)統(tǒng)計(jì):
14:打印日志文件: adb logcat:
? ? ? ? ? ? ? ? Monkey命令
monkey在本地電腦必須配置Android_HOME環(huán)境和Path環(huán)境,
ANDROID_HOME=/Volumes/sd1/Android/sdk/(就是我們SDK的路徑) PATH=${PATH}:/Volumes/sd1/Android/sdk/platform-tools/:/Volumes/sd1/Android/sdk/tools ?path 配置兩部分,?platform-tools 和sdk/tools 只有有了這兩部分才能使用monkey進(jìn)行穩(wěn)定性測試捕透。
1.查看設(shè)備的鏈接情況:adb devices
2.手機(jī)里面的軟件隨機(jī)點(diǎn)擊:adb shell monkey 1000
負(fù)載測試
是應(yīng)用在重負(fù)荷下的表現(xiàn)
是測試對象在不同的工作量的條件下的性能表現(xiàn),以及持續(xù)正常的運(yùn)行能力
目的確保系統(tǒng)在超出最大的預(yù)期工作量的情況下仍舊能夠正常的運(yùn)轉(zhuǎn)
評估性能特征以及響應(yīng)時(shí)間事務(wù)處理的速率以及其他與時(shí)間上有關(guān)的方面測試
強(qiáng)迫測試
在交替進(jìn)行超負(fù)荷和性能測試的一種說法
也是用于測試對象在超出負(fù)荷中狀態(tài)下進(jìn)行的功能測試
對某一個(gè)測試點(diǎn)進(jìn)行輸入大量的重復(fù)輸入或者是大量數(shù)據(jù)的輸入針對數(shù)據(jù)庫一個(gè)復(fù)雜查詢
壓力測試
對測試對象的任何測試點(diǎn)在少量的計(jì)算機(jī)或者是資源匱乏的情況下進(jìn)行的測試
對cpu內(nèi)存 服務(wù)器等硬件上的測試 一般做并發(fā)測試
安全測試
測試對象在授權(quán)的情況下進(jìn)行的測試
1. 非法截取或者破譯口令
2. 專門定義的測試腳本來破壞測試對象的保護(hù)
3. 故意導(dǎo)致系統(tǒng)失敗或者非法進(jìn)入系統(tǒng)
4. 試圖使用瀏覽器的url地址進(jìn)行拼接而達(dá)到
5. 使用使用sql語句注入的方式
? ? ? ? ? ? ? ? ? ? ? ? ?Charles
1. 應(yīng)用場景:
前后臺在某個(gè)功能上的迭代站欺,約定好接口的數(shù)據(jù)格式(json) 前段來通過軟件的重定向功能來模擬服務(wù)器的響應(yīng)得到不同的結(jié)果
手動(dòng)實(shí)現(xiàn)復(fù)現(xiàn)一些服務(wù)器響應(yīng)錯(cuò)誤500 ?404 ?400 ?300 405
作業(yè):熟悉服務(wù)器的不同的狀態(tài)碼 ?
在弱網(wǎng)的環(huán)境下實(shí)現(xiàn)模擬
2. 目的:
合法截取到接口以及參數(shù)返回值圖片文件。嘴秸。
3. 工具的安裝
1卿拴、直接傻瓜試安裝exe文件
1梨与、在https://www.zzzmode.com/mytools/charles/網(wǎng)站實(shí)現(xiàn)根據(jù)不同的版本下載不同破解壓縮包
2堕花、替換掉在lib文件下jar包
Charles抓包的具體實(shí)現(xiàn)步驟:
https://blog.csdn.net/liuwkk/article/details/81258522
在抓取移動(dòng)端的https協(xié)議的時(shí)候安裝證書路徑
???Charlspoxy.com/getssl
Jmeter
用來進(jìn)行性能測試壓力測試接口測試
Jmeter下載頁面
http://jmeter.apache.org/download_jmeter.cgi
后綴名為.zip可以用在可視化系統(tǒng) woindows mac
后綴名為.tgz 可以用在linux系統(tǒng)上
下載之后解壓并配置環(huán)境變量
在環(huán)境變量中設(shè)置--系統(tǒng)環(huán)境變量中
Jmeter性能測試
面試題:http和https的區(qū)別
針對http請求
步驟:
1. 在測試計(jì)劃中添加線程組
2. 在線程組中添加http請求
3.在http請求中進(jìn)行添加元素
4. 添加響應(yīng)斷言
5. 添加查看結(jié)果樹
6. 添加聚合報(bào)告
針對https請求
?1. 在使用https協(xié)議的時(shí)候需要下載并安裝證書下載需要在網(wǎng)址的url地址欄中點(diǎn)擊鎖
2. 一路下一步直至導(dǎo)出證書.cer文件
3. 將.cer文件編譯成.store 需要使用jdk目錄下的bin文件下的keytool.exe文件
在黑白窗口中使用命令
Keytool -import -alias "jiuyue.store" -file?
"C:/Users/Administrator/Desktop/a.cer" -keystore
?"C:/Users/Administrator/Desktop/jiuyue.store"
4. 在jmeter中添加線程組
5. 添加http請求
6. 添加斷言
因?yàn)槭窍蚍?wù)器發(fā)出請求得到的測試模式為抓包得到的json
7. 添加結(jié)果樹
如果需要進(jìn)行壓力測試100個(gè)線程同時(shí)發(fā)布10個(gè)請求
8. 在聚合報(bào)告中可以查到結(jié)果
Jmeter的腳本錄制
腳本錄制方式有2種
1. 使用第三方的boadboy的軟件
?? 在url地址欄中輸入一系列的業(yè)務(wù)需求 打開不同的頁面以及參數(shù)
點(diǎn)擊紅點(diǎn)停止錄制
在file菜單中選擇 export jmeter 會(huì)生成.jmx文件
打開jmeter中選擇文件中的打開
會(huì)自動(dòng)生成一個(gè)線程組在線程組中的步驟是具體的每一個(gè)接口
任何一個(gè)http請求 都會(huì)自動(dòng)生成 路徑。方式粥鞋。缘挽。。呻粹。到踏。
在結(jié)合響應(yīng)斷言查看結(jié)果樹。尚猿。
有可以對其使用弱網(wǎng)測試壓力測試性能測試
使用badyboy錄制的大多數(shù)都是web項(xiàng)目或者是后臺開發(fā)
2. 使用jmeter的代理錄制
使用android的項(xiàng)目可以使用jmeter的代理
需要在jmeter工具和手機(jī)端都要安裝證書(jmeter的證書)
Pc端和手機(jī)處以同一網(wǎng)絡(luò)下(手機(jī)設(shè)置手動(dòng)代理)
在添加線程組-->httpcookie管理器
在工作臺上添加http代理服務(wù)器
在代理服務(wù)器上添加端口號以及目標(biāo)控制器分組
點(diǎn)擊啟動(dòng)按鈕后會(huì)彈出對話框安裝證書
在選項(xiàng)中選擇ssl管理器 給jmeter導(dǎo)入證書
在移動(dòng)端進(jìn)行安裝證書將后綴名為crt的文件拖入到手機(jī)中或者是在文檔根目錄 ?
1. 拖拽到移動(dòng)端然后自動(dòng)安裝
2.在跟目錄下使用證書安裝程序的方式進(jìn)行安裝
3. 在設(shè)置中-->安全-->從sd卡中安裝證書
模擬器一定要進(jìn)行重啟(可以錄制app的使用場景)
Jmeter+ant+jendkins接口自動(dòng)化
1.jmeter的安裝以及環(huán)境變量的設(shè)置
在dos命令中執(zhí)行jmeter
???Jmeter_home
1.jmeter 默認(rèn)生成的測試報(bào)告的后綴為.jtl格式 修改成mxl
在jmeter文件下bin\jmeter.properties中將
jmeter.save.saveservice.output_format=csv修改為xml并解開注釋
2. ]將apacheAnt.rar 實(shí)現(xiàn)解壓
3.實(shí)現(xiàn)將ant和jmeter實(shí)現(xiàn)關(guān)聯(lián)
通過在jmeter文件夾下extras/ant-jmeter-1.1.1.jar取覆蓋到ant下
lib文件夾
[if !supportLists]4.?[endif]配置框架結(jié)構(gòu)
自定義文件夾JTest
將能和jmeter關(guān)聯(lián)的ant文件復(fù)制到
F:\JTest\apacheAnt(替換過jar包的ant)
F:\JTest\JmeterAutoTest\pc\resultlog\jtl(jmeter自動(dòng)生成的測試報(bào)告但是看不懂)
?F:\JTest\JmeterAutoTest\pc\resultlog\html ??(使用ant將jtl的測試報(bào)告轉(zhuǎn)換html)
F:\JTest\JmeterAutoTest\pc\script (用來存放腳本 .jmx文件)
[if !supportLists]5.?[endif]配置ant的環(huán)境變量
???Ant_home ??F:\JTest\apacheAnt
???Path ??????F:\JTest\apacheAnt\bin
在dos命令行輸入 ant -version 來驗(yàn)證ant配置成功
6. 將測試報(bào)告發(fā)送到郵箱
???activation-1.1.jar
???commons-email-1.1.jar
???mail-1.4.jar
復(fù)制到ant下的lib文件夾下實(shí)現(xiàn)替換
7. Ant的執(zhí)行時(shí)通過buid.xml來執(zhí)行
將buid.xml 存放到
F:\Test\JmeterAutoTest\pc\build.xml(因?yàn)橐獔?zhí)行的時(shí)pc的測試報(bào)告)
更改buid.xml文件的7個(gè)地方
8. 將.jmx文件放入到script文件夾下
9. 在buid.xml文件存放的的目錄下 使用dos命令 ant即可生成測試報(bào)告并發(fā)送
0人點(diǎn)贊
作者:寶藏男孩_fc2b
鏈接:http://www.reibang.com/p/f8bc2ae74f52
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)楣富,非商業(yè)轉(zhuǎn)載請注明出處凿掂。