● 給你一個(gè)字符串吃粒,你怎么判斷是不是ip地址?手寫這段代碼点骑,并寫出測(cè)試用例
參考回答:
IP的格式:(1~255).(0~255).(0~255).(0~255)
方法一:基于對(duì)字符串的處理
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String ipStr = scanner.next();
boolean isIpLegal = isIpLegal(ipStr);
if(isIpLegal) {
System.out.println(ipStr + " 合法");
}
else{
System.out.println(ipStr + " 非法");
}
}
public static boolean isIpLegal(String str){
//檢查ip是否為空
if(str == null){
return false;
}
//檢查ip長度朦拖,最短為:x.x.x.x(7位)古拴,最長為:xxx.xxx.xxx.xxx(15位)
if(str.length() < 7 || str.length() > 15){
return false;
}
//對(duì)輸入字符串的首末字符判斷,如果是"."則是非法IP
if(str.charAt(0) == '.' || str.charAt(str.length()-1) == '.'){
return false;
}
//按"."分割字符串钱骂,并判斷分割出來的個(gè)數(shù)叔锐,如果不是4個(gè),則是非法IP
String[] arr = str.split("\\.");
if(arr.length != 4){
return false;
}
//對(duì)分割出來的每個(gè)字符串進(jìn)行單獨(dú)判斷
for(int i = 0; i < arr.length; i++){
//如果每個(gè)字符串不是一位字符见秽,且以'0'開頭愉烙,則是非法的IP,如:01.002.03.004
if(arr[i].length() > 1 && arr[i].charAt(0) == '0'){
return false;
}
//對(duì)每個(gè)字符串的每個(gè)字符進(jìn)行逐一判斷解取,如果不是數(shù)字0-9步责,則是非法的IP
for(int j = 0; j < arr[i].length(); j++){
if (arr[i].charAt(j) < '0' || arr[i].charAt(j) > '9'){
return false;
}
}
}
//對(duì)拆分的每一個(gè)字符串進(jìn)行轉(zhuǎn)換成數(shù)字,并判斷是否在0~255
for(int i = 0; i < arr.length; i++){
int temp = Integer.parseInt(arr[i]);
if(i == 0){
if (temp < 1 || temp > 255){
return false;
}
}
else{
if(temp < 0 || temp > 255){
return false;
}
}
}
return true;
}
方法二:正則表達(dá)式
1
2
3
4
5
publicstaticvoidmain(String[] args) {
Scanner scanner =?newScanner(System.in);
String ipStr = scanner.next();
boolean isIpLegal = isIpLegal(ipStr);
if(isIpLegal) {
System.out.println(ipStr + " 合法");
}
else{
System.out.println(ipStr + " 非法");
}
}
public static boolean isIpLegal(String ipStr) {
String ipRegEx = "^([1-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))(\\.([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))){3}$";
Pattern pattern = Pattern.compile(ipRegEx);
Matcher matcher = pattern.matcher(ipStr);
if (matcher.matches()) {
return true;
} else {
return false;
}
}
測(cè)試用例:
等價(jià)類劃分:
有效可用的IP地址
A類1.0.0.0 -126.255.255.254
A私有10.0.0.0 -10.255.255.254
B類128.0.0.0 -191.255.255.254
B私有172.16.0.0 -172.31.255.254
C類192.0.0.0 -223.255.255.254
C私有192.168.0.0-192.168.255.254
windows自動(dòng)分配169.254.0.0-169.254.255.254
有效但不可用的IP地址
D224.0.0.0 -239.255.255.254
E240.0.0.0 -255.255.255.254
全網(wǎng)0.x.x.x, x.x.x.0
廣播x.x.x.255
回環(huán)127.0.0.0 -127.255.255.254
輸入結(jié)果
64.11.22.33有效可用
10.12.13.14有效可用禀苦,不能直接訪問公網(wǎng)
151.123.234.56有效可用
172.20.123.56有效可用蔓肯,不能直接訪問公網(wǎng)
192.127.35.65有效可用
192.168.128.128有效可用,不能直接訪問公網(wǎng)
169.254.15.200有效可用振乏,不能直接訪問公網(wǎng)
224.1.2.3有效不可用蔗包,超過有效范圍(D類)
250.11.22.33有效不可用,超過有效范圍(E類)
0.200.3.4有效不可用慧邮,全網(wǎng)地址
64.11.22.0有效不可用调限,全網(wǎng)地址
10.12.13.255有效不可用舟陆,廣播地址
127.50.60.70有效不可用,回環(huán)地址
● 請(qǐng)進(jìn)行測(cè)試用例設(shè)計(jì):一串?dāng)?shù)字旧噪,閏年的判別
參考回答:
判斷閏年的標(biāo)準(zhǔn)是:能整除4且不能整除100吨娜,能整除400。設(shè)定合法的年份為1-9999
public class Test2 {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
int year=in.nextInt();
if(year<=0||year>9999)
{
System.out.println("請(qǐng)輸入正確的年份");
}
if((year%4==0&&year%100!=0)||year%400==0)
{
System.out.println("閏年");
}else
{
System.out.println("不是閏年");
}
}
}
測(cè)試用例:
測(cè)試用例輸入預(yù)期輸出
被 4 整除, 但是不被100 整除的年份2008閏年
被 4 整除, 同時(shí)被100 整除的年份淘钟,且被 400 整除的年份2000閏年
被 4 整除, 同時(shí)被100 整除的年份宦赠,但是不被400 整除的年份1900不是閏年
偶數(shù), 不被4 整除的年份2022不是閏年
奇數(shù)年份1999不是閏年
年份大于999910000請(qǐng)輸入正確的年份
年份小于00請(qǐng)輸入正確的年份
● 請(qǐng)你說一說簡單用戶界面登陸過程都需要做哪些分析
參考回答:
一、功能測(cè)試
1.輸入正確的用戶名和密碼米母,點(diǎn)擊提交按鈕勾扭,驗(yàn)證是否能正確登錄。
2.輸入錯(cuò)誤的用戶名或者密碼,驗(yàn)證登錄會(huì)失敗铁瞒,并且提示相應(yīng)的錯(cuò)誤信息妙色。
3.登錄成功后能否能否跳轉(zhuǎn)到正確的頁面
4.用戶名和密碼,如果太短或者太長慧耍,應(yīng)該怎么處理
5.用戶名和密碼身辨,中有特殊字符(比如空格),和其他非英文的情況
6.記住用戶名的功能
7.登陸失敗后芍碧,不能記錄密碼的功能
8.用戶名和密碼前后有空格的處理
9.密碼是否非明文顯示顯示煌珊,使用星號(hào)圓點(diǎn)等符號(hào)代替。
10.牽扯到驗(yàn)證碼的泌豆,還要考慮文字是否扭曲過度導(dǎo)致辨認(rèn)難度大定庵,考慮顏色(色盲使 用者),刷新或換一個(gè)按鈕是否好用
11.登錄頁面中的注冊(cè)踪危、忘記密碼蔬浙,登出用另一帳號(hào)登陸等鏈接是否正確
12.輸入密碼的時(shí)候,大寫鍵盤開啟的時(shí)候要有提示信息贞远。
13.什么都不輸入畴博,點(diǎn)擊提交按鈕,檢查提示信息兴革。
二绎晃、界面測(cè)試
1.布局是否合理,testbox和按鈕是否整齊杂曲。
2.testbox和按鈕的長度庶艾,高度是否復(fù)合要求。
3. 界面的設(shè)計(jì)風(fēng)格是否與UI的設(shè)計(jì)風(fēng)格統(tǒng)一擎勘。
4. 界面中的文字簡潔易懂咱揍,沒有錯(cuò)別字。
三棚饵、性能測(cè)試
1.打開登錄頁面煤裙,需要的時(shí)間是否在需求要求的時(shí)間內(nèi)掩完。
2.輸入正確的用戶名和密碼后,檢查登錄成功跳轉(zhuǎn)到新頁面的時(shí)間是否在需求要求的時(shí)間內(nèi)硼砰。
3.模擬大量用戶同時(shí)登陸且蓬,檢查一定壓力下能否正常登陸跳轉(zhuǎn)。
四题翰、安全性測(cè)試
1.登錄成功后生成的Cookie恶阴,是否是httponly (否則容易被腳本盜取)。
2.用戶名和密碼是否通過加密的方式豹障,發(fā)送給Web服務(wù)器冯事。
3.用戶名和密碼的驗(yàn)證,應(yīng)該是用服務(wù)器端驗(yàn)證血公, 而不能單單是在客戶端用javascript 驗(yàn)證昵仅。
4.用戶名和密碼的輸入框,應(yīng)該屏蔽SQL注入攻擊累魔。
5.用戶名和密碼的的輸入框摔笤,應(yīng)該禁止輸入腳本 (防止XSS攻擊)。
6.防止暴力破解垦写,檢測(cè)是否有錯(cuò)誤登陸的次數(shù)限制籍茧。
7. 是否支持多用戶在同一機(jī)器上登錄。
8. 同一用戶能否在多臺(tái)機(jī)器上登錄梯澜。
五、可用性測(cè)試
1. 是否可以全用鍵盤操作渴析,是否有快捷鍵晚伙。
2. 輸入用戶名,密碼后按回車俭茧,是否可以登陸咆疗。
3. 輸入框能否可以以Tab鍵切換。
六母债、兼容性測(cè)試
1.不同瀏覽器下能否顯示正常且功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)午磁。
2.同種瀏覽器不同版本下能否顯示正常且功能正常。
2.不同的平臺(tái)是否能正常工作毡们,比如Windows, Mac迅皇。
3.移動(dòng)設(shè)備上是否正常工作,比如Iphone, Andriod衙熔。
4.不同的分辨率下顯示是否正常登颓。
七、本地化測(cè)試
1. 不同語言環(huán)境下红氯,頁面的顯示是否正確框咙。
● 請(qǐng)對(duì)這個(gè)系統(tǒng)做出測(cè)試用例:一個(gè)系統(tǒng)咕痛,多個(gè)攝像頭,抓拍車牌喇嘱,識(shí)別車牌茉贡,上傳網(wǎng)上,網(wǎng)上展示
參考回答:
功能:
1.每個(gè)攝像頭都能抓拍車牌者铜;
2.每個(gè)攝像頭抓拍到的車牌能正常交給系統(tǒng)處理腔丧;
3.系統(tǒng)能夠正確識(shí)別車牌;
4.系統(tǒng)能夠?qū)⒆R(shí)別出的車牌上傳王暗;
5.上傳至網(wǎng)絡(luò)的車牌能夠正常展示出來悔据;
一、功能測(cè)試
1.使用正常的車牌俗壹,保持車牌靜止科汗,檢查每個(gè)攝像頭是否能抓拍車牌;
2.使用類似非車牌的寫有字的紙板绷雏,檢查每個(gè)攝像頭是否抓拍头滔;
3.使用正常的車牌,保持車牌較高速移動(dòng)涎显,檢查每個(gè)攝像頭是否能抓拍車牌坤检;
4.在多種情況下檢查每個(gè)攝像頭抓拍到的車牌能否正常交給系統(tǒng)處理,如臨時(shí)斷電期吓、斷網(wǎng)后能否正常將數(shù)據(jù)交給系統(tǒng)早歇;
5.使用抓拍到的正常的車牌,交由系統(tǒng)處理讨勤,檢查系統(tǒng)能否識(shí)別車牌箭跳;
6.使用非車牌的其他圖片,交由系統(tǒng)處理潭千,檢查系統(tǒng)能否識(shí)別谱姓;
7.在多種情況下檢查系統(tǒng)能否將正常識(shí)別出的車牌進(jìn)行上傳,如臨時(shí)斷電刨晴、斷網(wǎng)后未上傳數(shù)據(jù)是否能繼續(xù)上傳屉来;
8.構(gòu)造非車牌的其他內(nèi)容的數(shù)據(jù),檢查系統(tǒng)能否將異常內(nèi)容進(jìn)行上傳狈癞;
9.檢查上傳至網(wǎng)絡(luò)的車牌能否正常展示出來茄靠;
10.上傳非車牌的其他內(nèi)容的數(shù)據(jù),檢查能否正常顯示出來蝶桶。
二嘹黔、性能測(cè)試
1.同時(shí)向一個(gè)攝像頭展示多個(gè)靜止的車牌,檢查攝像頭能否抓拍到多個(gè)車牌;
2.同時(shí)向一個(gè)攝像頭展示多個(gè)較高速運(yùn)動(dòng)的車牌儡蔓,檢查攝像頭能否抓拍到多個(gè)車牌郭蕉;
3.抓拍后,檢查系統(tǒng)識(shí)別車牌的時(shí)間是否在需求要求的時(shí)間內(nèi)喂江;
4.模擬大量抓拍照片同時(shí)交由系統(tǒng)處理召锈,檢查一定壓力下系統(tǒng)能否正常識(shí)別車牌;
5.模擬大量車牌同時(shí)上傳获询,檢查一定壓力下能否上傳成功涨岁。
三、安全性測(cè)試
1.檢查是否能夠通過給車牌加裝飾物等方法吉嚣,使攝像頭無法抓拍或抓拍后系統(tǒng)無法正常識(shí)別車牌梢薪。
● 請(qǐng)你對(duì)吃雞游戲進(jìn)行壓力測(cè)試
參考回答:
一.首先明確需要測(cè)試壓力的內(nèi)容:
1.游戲服務(wù)器硬件
a.硬盤I/o
b.內(nèi)存
c.CPU
2.網(wǎng)絡(luò)壓力
a.長連接
a1.最大連接數(shù)
a2.流量(內(nèi)網(wǎng)、外網(wǎng)尝哆、進(jìn)秉撇、出)
b.長連接短周期(類似Http的TCP應(yīng)用,這個(gè)比較特殊的一個(gè)需求秋泄,專門針對(duì)LoginAgent)
b1.每秒建立的連接數(shù)
b2.實(shí)際處理能力
3.數(shù)據(jù)庫
a.每秒事務(wù)數(shù)
b.每秒鎖等待數(shù)
c.平均延時(shí)(ms)
d.CPU暫用
4.多線程的最優(yōu)線程數(shù)
a.數(shù)據(jù)庫執(zhí)行的多線程
b.多連接處理
二.Windows Server環(huán)境測(cè)試方式
1.服務(wù)器性能監(jiān)測(cè)
使用Server自帶的性能監(jiān)測(cè)器設(shè)置各個(gè)進(jìn)程的監(jiān)測(cè)參數(shù)琐馆。Window的這個(gè)自動(dòng)工具做的相當(dāng)強(qiáng)大。大家自己摸一摸基本就會(huì)用了恒序。每個(gè)參數(shù)都由詳細(xì)的說明瘦麸。
2.案例設(shè)計(jì)注意
a.對(duì)于數(shù)據(jù)庫的性能測(cè)試上,現(xiàn)在由于所有的游戲服務(wù)器構(gòu)架在DB前面都有一個(gè)實(shí)現(xiàn)DB緩沖功能的進(jìn)程歧胁,以減少數(shù)據(jù)庫頻繁的讀寫操作滋饲。所以其實(shí)數(shù)據(jù)庫的讀是一個(gè)輕量級(jí)的數(shù)量;而數(shù)據(jù)庫的寫操作是一個(gè)周期性能過程喊巍。案例設(shè)計(jì)一定要能夠驅(qū)動(dòng)這種周期性能過程了赌。比如我們游戲的戰(zhàn)斗,導(dǎo)致游戲玩家數(shù)據(jù)的改變玄糟,或驅(qū)動(dòng)所有在線玩家數(shù)據(jù)的周期性存儲(chǔ)。
b.選擇具有代表性袄秩,并且最頻繁的游戲操作阵翎。用于進(jìn)行最高用戶在線的各種性能指標(biāo)采集。如之剧,開槍郭卫、道具拾取、道具使用背稼、移動(dòng)贰军、聊天
c.聊天性能測(cè)試
廣播聊天是最為考驗(yàn)游戲信息發(fā)送能力的功能。通過進(jìn)行全局廣播的壓力測(cè)試。我們可以獲取服務(wù)器進(jìn)程發(fā)送信息到客戶端的最高承載量词疼。進(jìn)而可以對(duì)我們的各種廣播功能進(jìn)行一個(gè)預(yù)估和頻率限制俯树。
d.同屏玩家的移動(dòng)測(cè)試
移動(dòng)+廣播。這兩種信息贰盗,基本是網(wǎng)絡(luò)游戲流量的70-80%左右许饿。同屏玩家數(shù)量,將會(huì)增加各種數(shù)據(jù)的廣播需求舵盈,非常影響游戲性能陋率。所以同屏的移動(dòng)測(cè)試也是廣播測(cè)試的一個(gè)必要環(huán)節(jié)。需要根據(jù)實(shí)際結(jié)果進(jìn)行適當(dāng)?shù)膬?yōu)化秽晚。
e.大量玩家同時(shí)登錄測(cè)試
玩家登錄時(shí)瓦糟,有大量的信息需要進(jìn)行分配和初始化;同時(shí)也有大量的數(shù)據(jù)需要下傳客戶端赴蝇。服務(wù)器需要進(jìn)行大量的TCP連接建立菩浙。所以是一個(gè)比較關(guān)鍵的過程。這個(gè)測(cè)試案例是一個(gè)比較特殊扯再,但是運(yùn)營是肯定會(huì)碰到的案例芍耘。
f.由于線程池處理事務(wù),隨著事務(wù)的時(shí)耗熄阻,存在一個(gè)最優(yōu)線程數(shù)的問題斋竞。過多的線程反而會(huì)降低服務(wù)器效率
3.細(xì)節(jié)問題
a.進(jìn)行測(cè)試需要仔細(xì)思考客戶端性能影響服務(wù)器最后表現(xiàn)的可能性。比如
a1.模擬客戶端的性能無法有效處理服務(wù)器返回信息,可能就導(dǎo)致服務(wù)器發(fā)送的信息緩存在服務(wù)器系統(tǒng)緩存秃殉,從而表現(xiàn)出服務(wù)器內(nèi)存不斷增加坝初。表現(xiàn)為服務(wù)器發(fā)送能力不足,其實(shí)可能根本就是客戶端的性能問題
a2.客戶端性能問題钾军,導(dǎo)致發(fā)起的請(qǐng)求數(shù)過少鳄袍,從而導(dǎo)致單位時(shí)間內(nèi)服務(wù)器處理的請(qǐng)求過少。表現(xiàn)為服務(wù)器性能不足吏恭,其實(shí)根本就是客戶端的請(qǐng)求能力不足拗小。
b.網(wǎng)絡(luò)帶寬導(dǎo)致最后表現(xiàn)不足
b1.確認(rèn)服務(wù)器的各個(gè)網(wǎng)卡,以及相互的帶寬樱哼。不然可能因?yàn)橄嗷挵Ь牛瑢?dǎo)致服務(wù)器對(duì)于客戶端請(qǐng)求的處理延時(shí)。表現(xiàn)為服務(wù)器卡機(jī)
b2.客戶端模擬多個(gè)玩家搅幅,比如1000個(gè)玩家阅束。而客戶端的網(wǎng)卡或者客戶端與服務(wù)器之間的中轉(zhuǎn)服務(wù)器帶寬過小,導(dǎo)致服務(wù)器數(shù)據(jù)發(fā)送不出茄唐,內(nèi)存不斷增加息裸。表現(xiàn)為服務(wù)器發(fā)送能力不足,其實(shí)是中間帶寬問題。
c.debug i/o導(dǎo)致服務(wù)器性能下降
c1.進(jìn)行性能測(cè)試呼盆,一定要取消debug用的同步的i/o.比如我們服務(wù)器的debuginternalLog.同步i/o是非常影響性能的年扩,特別在壓力測(cè)試下可能導(dǎo)致每秒上千上萬甚至幾十萬次的執(zhí)行。一處的文件寫入操作就可以導(dǎo)致幾十萬次的處理能力變成幾千次的處理能力宿亡。
c2.客戶端避免進(jìn)行阻塞操作導(dǎo)致模擬多用戶性能下降常遂,導(dǎo)致服務(wù)器表現(xiàn)性能下降
d.流量需要區(qū)分內(nèi)網(wǎng)網(wǎng)
內(nèi)、外網(wǎng)流量在游戲正式運(yùn)行時(shí)是完全分開的挽荠。價(jià)格也是完全不同的克胳。一個(gè)千M的外網(wǎng)是一個(gè)無法想象的運(yùn)營成本,而kmbps/s現(xiàn)在已經(jīng)是一個(gè)可以接受的代價(jià)圈匆。游戲進(jìn)程需要進(jìn)行不同網(wǎng)卡的配置和綁定漠另。確定內(nèi)外網(wǎng)流量。
● 請(qǐng)你根據(jù)微信登錄界面設(shè)計(jì)測(cè)試用例
參考回答:
一跃赚、功能測(cè)試
1.輸入正確的用戶名和密碼笆搓,點(diǎn)擊提交按鈕,驗(yàn)證是否能正確登錄纬傲。
2.輸入錯(cuò)誤的用戶名或者密碼,驗(yàn)證登錄會(huì)失敗满败,并且提示相應(yīng)的錯(cuò)誤信息。
3.登錄成功后能否能否跳轉(zhuǎn)到正確的頁面
4.檢查能否選擇不同登錄方式進(jìn)行登錄叹括,如使用手機(jī)號(hào)登錄算墨、使用微信號(hào)登錄或掃碼登錄。
5.記住用戶名的功能
6.登陸失敗后汁雷,不能記錄密碼的功能
7.密碼是否非明文顯示顯示净嘀,使用星號(hào)圓點(diǎn)等符號(hào)代替。
8.有驗(yàn)證碼時(shí)侠讯,還要考慮文字是否扭曲過度導(dǎo)致辨認(rèn)難度大挖藏,考慮顏色、刷新或換一個(gè)按鈕是否好用
9.登錄頁面中的注冊(cè)厢漩、忘記密碼膜眠,登出用另一帳號(hào)登陸等鏈接是否正確
10.輸入密碼的時(shí)候,大寫鍵盤開啟的時(shí)候要有提示信息溜嗜。
11.什么都不輸入宵膨,點(diǎn)擊提交按鈕,檢查提示信息粱胜。
二、界面測(cè)試
1.布局是否合理狐树,testbox和按鈕是否整齊焙压。
2.testbox和按鈕的長度,高度是否復(fù)合要求。
3. 界面的設(shè)計(jì)風(fēng)格是否與UI的設(shè)計(jì)風(fēng)格統(tǒng)一涯曲。
4. 界面中的文字簡潔易懂野哭,沒有錯(cuò)別字。
三幻件、性能測(cè)試
1.打開登錄頁面拨黔,需要的時(shí)間是否在需求要求的時(shí)間內(nèi)。
2.輸入正確的用戶名和密碼后绰沥,檢查登錄成功跳轉(zhuǎn)到新頁面的時(shí)間是否在需求要求的時(shí)間內(nèi)篱蝇。
3.模擬大量用戶同時(shí)登陸,檢查一定壓力下能否正常登陸跳轉(zhuǎn)徽曲。
四零截、安全性測(cè)試
1.登錄成功后生成的Cookie,是否是httponly (否則容易被腳本盜取)秃臣。
2.用戶名和密碼是否通過加密的方式涧衙,發(fā)送給Web服務(wù)器。
3.用戶名和密碼的驗(yàn)證奥此,應(yīng)該是用服務(wù)器端驗(yàn)證弧哎, 而不能單單是在客戶端用javascript 驗(yàn)證。
4.用戶名和密碼的輸入框稚虎,應(yīng)該屏蔽SQL注入攻擊撤嫩。
5.用戶名和密碼的的輸入框,應(yīng)該禁止輸入腳本 (防止XSS攻擊)祥绞。
6.防止暴力破解非洲,檢測(cè)是否有錯(cuò)誤登陸的次數(shù)限制。
7. 是否支持多用戶在同一機(jī)器上登錄蜕径。
8. 同一用戶能否在多臺(tái)機(jī)器上登錄两踏。
五、兼容性測(cè)試
1.不同移動(dòng)平臺(tái)或PC環(huán)境下下能否顯示正常且功能正常
2.同種平臺(tái)下不同微信版本下能否顯示正常且功能正常兜喻。
3.不同的分辨率下顯示是否正常梦染。
七、本地化測(cè)試
1. 不同語言環(huán)境下朴皆,頁面的顯示是否正確帕识。
● 請(qǐng)你對(duì)朋友圈點(diǎn)贊功能進(jìn)行測(cè)試
參考回答:
1.是否可以正常點(diǎn)贊和取消;
2.點(diǎn)贊的人是否在可見分組里遂铡;
3.點(diǎn)贊狀態(tài)是否能即時(shí)更新顯示肮疗;
4.點(diǎn)贊狀態(tài),共同好友是否可見扒接;
6.性能檢測(cè)伪货,網(wǎng)速快慢對(duì)其影響们衙;
7.點(diǎn)贊顯示的是否正確,一行幾個(gè)碱呼;
8.點(diǎn)贊是否按時(shí)間進(jìn)行排序蒙挑,頭像對(duì)應(yīng)的是否正確;
9.是否能在消息列表中顯示點(diǎn)贊人的昵稱愚臀、5.不同手機(jī)忆蚀,系統(tǒng)顯示界面如何;
備注姑裂;
10.可擴(kuò)展性測(cè)試馋袜,點(diǎn)贊后是否能發(fā)表評(píng)論;
11.是否在未登錄時(shí)可查看被點(diǎn)贊的信息炭分。
● 如果做一個(gè)杯子的檢測(cè)桃焕,你如何測(cè)試
參考回答:
1.功能
(1)水倒水杯容量的一半
(2)水倒規(guī)定的安全線
(4)水杯容量刻度與其他水杯一致
(5)蓋子擰緊水倒不出來
(6)燙手驗(yàn)證
2.性能
(1)使用最大次數(shù)或時(shí)間
(2)掉地上不易損壞
(3)蓋子擰到什么程度水倒不出來
(4)保溫時(shí)間長
(5)杯子的耐熱性
(6)杯子的耐寒性
(7)長時(shí)間放置水不會(huì)漏
(8)杯子上放置重物達(dá)到什么程度杯子會(huì)被損壞
3.界面
(1)外觀完整、美觀
(2)大小與設(shè)計(jì)一樣(高捧毛、寬观堂、容量、直徑)
(3)拿著舒服
(4)材質(zhì)與設(shè)計(jì)一樣
(5)杯子上的圖案掉落
(6)圖案遇水溶解
4.安全
(1)杯子使用的材質(zhì)毒或細(xì)菌的驗(yàn)證
(2)高溫材質(zhì)釋放毒性
(3)低溫材質(zhì)釋放毒性
5.易用性
(1)倒水方便
(2)喝水方便
(3)攜帶方便
(4)使用簡單呀忧,容易操作
(5)防滑措施
6.兼容性
(1)杯子能夠容納果汁啥容、白水鸠澈、酒精、汽油等。
7.震動(dòng)測(cè)試
(1)杯子加包裝(有填充物)稿壁,六面震動(dòng)迟赃,檢查產(chǎn)品是否能應(yīng)對(duì)鐵路/公路/航空運(yùn)輸秒旋。
8.可移植性
(1)杯子在不同地方痴柔、溫度環(huán)境下都可以正常使用。
● 如何對(duì)一個(gè)頁面進(jìn)行測(cè)試
參考回答:
1咐吼、UI測(cè)試:頁面布局吹缔、頁面樣式檢查、控件長度是否夠長锯茄;顯示時(shí)厢塘,是否會(huì)被截?cái)啵恢С值目旖萱I肌幽,Tab鍵切換焦點(diǎn)順序正確性等晚碾。
2、功能測(cè)試:頁面上各類控件的測(cè)試范圍喂急,測(cè)試點(diǎn)格嘁。結(jié)合控件的實(shí)際作用來補(bǔ)充檢查點(diǎn): 比如, 密碼框是否*顯示廊移, 輸入是否做trim處理等糕簿。
3涣易、安全測(cè)試:輸入特殊字符,sql注入冶伞,腳本注入測(cè)試。后臺(tái)驗(yàn)證測(cè)試步氏,對(duì)于較重要的表單 响禽,繞過js檢驗(yàn)后臺(tái)是否驗(yàn)證;數(shù)據(jù)傳輸是否加密處理荚醒,比如芋类, 直接請(qǐng)求轉(zhuǎn)發(fā),地址欄直接顯示發(fā)送字符串界阁?
4侯繁、兼容性測(cè)試
5、性能測(cè)試
● 如何對(duì)水壺進(jìn)行測(cè)試
參考回答:
(同快手對(duì)水杯的測(cè)試)
1.功能
(1)水倒水壺容量的一半
(2)水倒規(guī)定的安全線
(4)水壺容量刻度與其他水壺一致
(5)蓋子擰緊水倒不出來
(6)燙手驗(yàn)證
2.性能
(1)使用最大次數(shù)或時(shí)間
(2)掉地上不易損壞
(3)蓋子擰到什么程度水倒不出來
(4)保溫時(shí)間長
(5)壺的耐熱性
(6)壺的耐寒性
(7)長時(shí)間放置水不會(huì)漏
(8)壺上放置重物達(dá)到什么程度壺會(huì)被損壞
3.界面
(1)外觀完整泡躯、美觀
(2)大小與設(shè)計(jì)一樣(高贮竟、寬、容量较剃、直徑)
(3)拿著舒服
(4)材質(zhì)與設(shè)計(jì)一樣
(5)壺上的圖案掉落
(6)圖案遇水溶解
4.安全
(1)壺使用的材質(zhì)毒或細(xì)菌的驗(yàn)證
(2)高溫材質(zhì)釋放毒性
(3)低溫材質(zhì)釋放毒性
5.易用性
(1)倒水方便
(2)喝水方便
(3)攜帶方便
(4)使用簡單咕别,容易操作
(5)防滑措施
6.兼容性
(1)壺能夠容納果汁、白水写穴、酒精惰拱、汽油等。
7.震動(dòng)測(cè)試
(1)壺加包裝(有填充物)啊送,六面震動(dòng)偿短,檢查產(chǎn)品是否能應(yīng)對(duì)鐵路/公路/航空運(yùn)輸。
8.可移植性
(1)壺在不同地方馋没、溫度環(huán)境下都可以正常使用昔逗。
● 如何對(duì)淘寶搜索框進(jìn)行測(cè)試
參考回答:
一, 功能測(cè)試
1. 輸入關(guān)鍵字,查看: 返回結(jié)果是否準(zhǔn)確披泪,返回的文本長度需限制
1.1輸入可查到結(jié)果的正常關(guān)鍵字纤子、詞、語句款票,檢索到的內(nèi)容控硼、鏈接正確性;
1.2輸入不可查到結(jié)果的關(guān)鍵字艾少、詞卡乾、語句;
1.3輸入一些特殊的內(nèi)容缚够,如空幔妨、特殊符鹦赎、標(biāo)點(diǎn)符、極限值等误堡,可引入等價(jià)類劃分的方法等古话;
2. 結(jié)果顯示:標(biāo)題,賣家锁施,銷售量陪踩,單行/多行,是否有圖片
3. 結(jié)果排序:價(jià)格 銷量 評(píng)價(jià) 綜合
4.返回結(jié)果龐大時(shí)悉抵,限制第一頁的現(xiàn)實(shí)量肩狂,需支持翻頁
5. 多選項(xiàng)搜索:關(guān)鍵字 品牌 產(chǎn)地 價(jià)格區(qū)間 是否天貓 是否全國購
6. 是否支持模糊搜索,支持通配符的查詢
7, 網(wǎng)速慢的情況下的搜索
8. 搜索結(jié)果為空的情況
9. 未登錄情況和登錄情況下的搜索(登錄情況下 存儲(chǔ)用戶搜索的關(guān)鍵字/搜索習(xí)慣)
二.性能測(cè)試:
1壓力測(cè)試:在不同發(fā)用戶數(shù)壓力下的表現(xiàn)(評(píng)價(jià)指標(biāo)如響應(yīng)時(shí)間等)
2負(fù)載測(cè)試:看極限能承載多大的用戶量同時(shí)正常使用
3穩(wěn)定性測(cè)試:常規(guī)壓力下能保持多久持續(xù)穩(wěn)定運(yùn)行
4內(nèi)存測(cè)試:有無內(nèi)存泄漏現(xiàn)象
5大數(shù)據(jù)量測(cè)試:如模擬從龐大的海量數(shù)據(jù)中搜索結(jié)果姥饰、或搜索出海量的結(jié)果后列示出來傻谁,看表現(xiàn)如何等等。
三. 易用性:交互界面的設(shè)計(jì)是否便于列粪、易于使用
1依據(jù)不同的查詢結(jié)果會(huì)有相關(guān)的人性化提示审磁,查不到時(shí)告知?查到時(shí)統(tǒng)計(jì)條數(shù)并告知岂座?有疑似輸入條件錯(cuò)誤時(shí)提示可能正確的輸入項(xiàng)等等處理力图;
2查詢出的結(jié)果羅列有序,如按點(diǎn)擊率或其他排序規(guī)則掺逼,確保每次查詢出的結(jié)果位置按規(guī)則列示方便定位吃媒,顯示字體、字號(hào)吕喘、色彩便于識(shí)別等等赘那;
3標(biāo)題查詢、全文檢索氯质、模糊查詢募舟、容錯(cuò)查詢、多關(guān)鍵字組織查詢(空格間格開)等實(shí)用的檢索方式是否正常闻察?
4輸入搜索條件的控件風(fēng)格設(shè)計(jì)拱礁、位置擺放是否醒目便于使用者注意到,有否快照等快捷查看方式等人性化設(shè)計(jì)辕漂?
四. 兼容性
1WINDOWS/LINUX/UNIX等各類操作系統(tǒng)下及各版本條件下的應(yīng)用
2IE/FIREFOX/GOOGLE/360/QQ等各類瀏覽器下及各版本條件下呢灶、各種顯示分辨率條件下的應(yīng)用
3SQL/ORACLE/DB2/MYSQL等各類數(shù)據(jù)庫存儲(chǔ)情況下的兼容性測(cè)試
4簡體中文、繁體中文钉嘹、英文等各類語種軟件平臺(tái)下的兼容性測(cè)試
5IPHONE/IPAD鸯乃、安卓等各類移動(dòng)應(yīng)用平臺(tái)下的兼容性測(cè)試
6與各相關(guān)的監(jiān)控程序的兼容性測(cè)試,如輸入法跋涣、殺毒缨睡、監(jiān)控鸟悴、防火墻等工具同時(shí)使用
五. 安全性
1被刪除、加密奖年、授權(quán)的數(shù)據(jù)细诸,不允許被SQL注入等攻擊方式查出來的,是否有安全控制設(shè)計(jì)陋守;
2錄入一些數(shù)據(jù)庫查詢的保留字符揍堰,如單引號(hào)、%等等嗅义,造成查詢SQL拼接出的語句產(chǎn)生漏洞,如可以查出所有數(shù)據(jù)等等隐砸,這方面要有一些黑客攻擊的思想并引入一些工具和技術(shù)之碗,如爬網(wǎng)等。
3通過白盒測(cè)試技術(shù)季希,檢查一下在程序設(shè)計(jì)上是否存在安全方面的隱患褪那;
4對(duì)涉及國家安全、法律禁止的內(nèi)容是否進(jìn)行了相關(guān)的過濾和控制式塌;
● 如何對(duì)一瓶礦泉水進(jìn)行測(cè)試
參考回答:
界面測(cè)試:查看外觀是否美觀
功能度:查看水瓶漏不漏博敬;瓶中水能不能被喝到
安全性:瓶子的材質(zhì)有沒有毒或細(xì)菌
可靠性:從不同高度落下的損壞程度
可移植性:再不同的地方、溫度等環(huán)境下是否都可以正常使用
兼容性:是否能夠容納果汁峰尝、白水偏窝、酒精、汽油等
易用性:是否燙手武学、是否有防滑措施祭往、是否方便飲用
用戶文檔:使用手冊(cè)是否對(duì)的用法、限制火窒、使用條件等有詳細(xì)描述
疲勞測(cè)試:將盛上水(案例一)放24小時(shí)檢查泄漏時(shí)間和情況硼补;盛上汽油(案例二)放24小時(shí)檢查泄漏時(shí)間和情況等
壓力測(cè)試:用根針并在針上面不斷加重量,看壓強(qiáng)多大時(shí)會(huì)穿透
跌落測(cè)試:測(cè)試在何種高度跌落會(huì)破壞水瓶
● 如何測(cè)試登陸界面
參考回答:
一熏矿、功能測(cè)試
1.輸入正確的用戶名和密碼已骇,點(diǎn)擊提交按鈕,驗(yàn)證是否能正確登錄票编。
2.輸入錯(cuò)誤的用戶名或者密碼,驗(yàn)證登錄會(huì)失敗褪储,并且提示相應(yīng)的錯(cuò)誤信息。
3.登錄成功后能否能否跳轉(zhuǎn)到正確的頁面
4.用戶名和密碼慧域,如果太短或者太長乱豆,應(yīng)該怎么處理
5.用戶名和密碼,中有特殊字符(比如空格)吊趾,和其他非英文的情況
6.記住用戶名的功能
7.登陸失敗后宛裕,不能記錄密碼的功能
8.用戶名和密碼前后有空格的處理
9.密碼是否非明文顯示顯示瑟啃,使用星號(hào)圓點(diǎn)等符號(hào)代替。
10.牽扯到驗(yàn)證碼的揩尸,還要考慮文字是否扭曲過度導(dǎo)致辨認(rèn)難度大蛹屿,考慮顏色(色盲使 用者),刷新或換一個(gè)按鈕是否好用
11.登錄頁面中的注冊(cè)岩榆、忘記密碼错负,登出用另一帳號(hào)登陸等鏈接是否正確
12.輸入密碼的時(shí)候,大寫鍵盤開啟的時(shí)候要有提示信息勇边。
13.什么都不輸入犹撒,點(diǎn)擊提交按鈕,檢查提示信息粒褒。
二识颊、界面測(cè)試
1.布局是否合理,testbox和按鈕是否整齊奕坟。
2.testbox和按鈕的長度祥款,高度是否復(fù)合要求。
3. 界面的設(shè)計(jì)風(fēng)格是否與UI的設(shè)計(jì)風(fēng)格統(tǒng)一月杉。
4. 界面中的文字簡潔易懂刃跛,沒有錯(cuò)別字。
三苛萎、性能測(cè)試
1.打開登錄頁面桨昙,需要的時(shí)間是否在需求要求的時(shí)間內(nèi)。
2.輸入正確的用戶名和密碼后腌歉,檢查登錄成功跳轉(zhuǎn)到新頁面的時(shí)間是否在需求要求的時(shí)間內(nèi)绊率。
3.模擬大量用戶同時(shí)登陸,檢查一定壓力下能否正常登陸跳轉(zhuǎn)究履。
四滤否、安全性測(cè)試
1.登錄成功后生成的Cookie,是否是httponly (否則容易被腳本盜取)最仑。
2.用戶名和密碼是否通過加密的方式藐俺,發(fā)送給Web服務(wù)器。
3.用戶名和密碼的驗(yàn)證泥彤,應(yīng)該是用服務(wù)器端驗(yàn)證欲芹, 而不能單單是在客戶端用javascript 驗(yàn)證。
4.用戶名和密碼的輸入框吟吝,應(yīng)該屏蔽SQL注入攻擊菱父。
5.用戶名和密碼的的輸入框,應(yīng)該禁止輸入腳本 (防止XSS攻擊)。
6.防止暴力破解浙宜,檢測(cè)是否有錯(cuò)誤登陸的次數(shù)限制官辽。
7. 是否支持多用戶在同一機(jī)器上登錄。
8. 同一用戶能否在多臺(tái)機(jī)器上登錄粟瞬。
五同仆、可用性測(cè)試
1. 是否可以全用鍵盤操作,是否有快捷鍵裙品。
2. 輸入用戶名俗批,密碼后按回車,是否可以登陸市怎。
3. 輸入框能否可以以Tab鍵切換岁忘。
六、兼容性測(cè)試
1.不同瀏覽器下能否顯示正常且功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)区匠。
2.同種瀏覽器不同版本下能否顯示正常且功能正常干像。
2.不同的平臺(tái)是否能正常工作,比如Windows, Mac辱志。
3.移動(dòng)設(shè)備上是否正常工作,比如Iphone, Andriod狞膘。
4.不同的分辨率下顯示是否正常揩懒。
七、本地化測(cè)試
1. 不同語言環(huán)境下挽封,頁面的顯示是否正確已球。
● 請(qǐng)你說一下jmeter
參考回答:
Jmeter:Apache JMeter是Apache組織開發(fā)的基于Java的壓力測(cè)試工具。用于對(duì)軟件做壓力測(cè)試辅愿,它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試智亮,但后來擴(kuò)展到其他測(cè)試領(lǐng)域。 它可以用于測(cè)試靜態(tài)和動(dòng)態(tài)資源点待,例如靜態(tài)文件阔蛉、Java 小服務(wù)程序、CGI 腳本癞埠、Java 對(duì)象状原、數(shù)據(jù)庫、FTP 服務(wù)器苗踪, 等等颠区。JMeter 可以用于對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載通铲,來自不同壓力類別下測(cè)試它們的強(qiáng)度和分析整體性能毕莱。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測(cè)試,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證你的程序返回了你期望的結(jié)果朋截。為了最大限度的靈活性蛹稍,JMeter允許使用正則表達(dá)式創(chuàng)建斷言。
為什么使用Jmeter:
?????開源免費(fèi)质和,基于Java編寫稳摄,可集成到其他系統(tǒng)可拓展各個(gè)功能插件
?????支持接口測(cè)試,壓力測(cè)試等多種功能饲宿,支持錄制回放厦酬,入門簡單
?????相較于自己編寫框架或其他開源工具,有較為完善的UI界面瘫想,便于接口調(diào)試
?????多平臺(tái)支持仗阅,可在Linux,Windows国夜,Mac上運(yùn)行
用例生成與導(dǎo)出:
Jmeter的用例格式為jmx文件减噪,實(shí)際為xml格式,感興趣可以學(xué)習(xí)下自己定制生成想要的jmx文件车吹。
生成原則:
每個(gè)功能模塊為一個(gè)獨(dú)立的jmx文件筹裕。增加可維護(hù)性。(盡量不要將一個(gè)jmx文件放入太多功能窄驹,后期維護(hù)成本會(huì)很高朝卒。)
模塊的私有變量保存在模塊中,多模塊共有的(例如服務(wù)器ip端口等)可以考慮存在單獨(dú)的文件中讀取乐埠。
接口測(cè)試不要放太多線程抗斤,畢竟不是做壓力測(cè)試,意義也不大丈咐。
導(dǎo)出方法:
編寫測(cè)試用例
文件——保存為——確定:
Jmeter運(yùn)行模式及參數(shù)
GUI模式
打開已有的jmx文件(文件——打開)
點(diǎn)擊啟動(dòng)按鈕運(yùn)行
命令行模式
依賴:
配置jmeter環(huán)境變量(windows下為將${jmeterhome}/bin加入Path變量)
如果未加入環(huán)境變量瑞眼,在執(zhí)行的時(shí)候可以直接給出全路徑或在${jmeterhome}/bin下執(zhí)行
命令:
jmeter -n -t <testplan filename> -l <listener filename>
參數(shù):
-h 幫助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下運(yùn)行 JMeter
-t 測(cè)試文件 -> 要運(yùn)行的 JMeter 測(cè)試腳本文件
-l jtl文件 -> 記錄結(jié)果的文件
-r 遠(yuǎn)程執(zhí)行 -> 啟動(dòng)遠(yuǎn)程服務(wù)
-H 代理主機(jī) -> 設(shè)置 JMeter 使用的代理主機(jī)
-P 代理端口 -> 設(shè)置 JMeter 使用的代理主機(jī)的端口號(hào)
-j 日志文件->設(shè)置JMeter日志文件的名稱
實(shí)例:
JMeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000
執(zhí)行步驟:
JMeter 默認(rèn)去當(dāng)前目錄尋找腳本文件,并把日志記錄在當(dāng)前目錄棵逊。比如你在 C:\tools\apache-jmeter-2.11\bin 目錄下執(zhí)行以上命令伤疙,JMeter 會(huì)去該目錄下尋找 test.jmx 腳本并把執(zhí)行結(jié)果放在該目錄。如果你的腳本在其他目錄辆影,而且想要把執(zhí)行結(jié)果放在另外文件夾掩浙,可以使用絕對(duì)路徑告訴 JMeter。
執(zhí)行結(jié)果查看:
GUI界面打開聚合報(bào)告
在GUI界面創(chuàng)建一個(gè)聚合報(bào)告
聚合報(bào)告界面點(diǎn)擊瀏覽秸歧,選中生成的.jtl文件厨姚,打開
Jmeter使用
Jmeter創(chuàng)建接口測(cè)試計(jì)劃實(shí)例
測(cè)試用例應(yīng)該作為測(cè)試的基礎(chǔ)內(nèi)容,而用例的結(jié)構(gòu)可能劃分键菱,則是用例的基礎(chǔ)(忽然在這里想說一下谬墙,用例僅僅是一項(xiàng)測(cè)試活動(dòng)的綱要今布,有最好,沒有的話能保證質(zhì)量也OK拭抬。更不用說用例的格式問題部默,無論是表格還是導(dǎo)圖,其實(shí)都無所謂造虎!本文的用例是指jmx文件中的控件結(jié)構(gòu))傅蹂。
?????模塊名稱(測(cè)試計(jì)劃):每個(gè)模塊獨(dú)立劃分為一個(gè)jmx文件(例如登陸模塊),最好與接口類一一對(duì)應(yīng)算凿。對(duì)應(yīng)的服務(wù)器信息份蝴,數(shù)據(jù)庫信息等可存在這里。
?????數(shù)據(jù)準(zhǔn)備:用于測(cè)試數(shù)據(jù)的準(zhǔn)備(例如賬號(hào)信息)氓轰。
?????結(jié)果查看:用于放置需要查看結(jié)果的控件(例如結(jié)果樹)婚夫。
?????線程組:所有的接口測(cè)試用例放在線程組下,集中定義線程等信息
?????獲取線程對(duì)應(yīng)測(cè)試數(shù)據(jù):用于獲取針對(duì)獨(dú)立線程的測(cè)試數(shù)據(jù)署鸡,例如在數(shù)據(jù)準(zhǔn)備里面獲得了賬號(hào)信息案糙,在這里根據(jù)賬號(hào)信息去數(shù)據(jù)庫獲取對(duì)應(yīng)的名稱,ID等信息靴庆。
?????請(qǐng)求名稱:用簡單控制器為文件夾时捌,內(nèi)有不同的請(qǐng)求。簡單控制器為一個(gè)獨(dú)立的接口炉抒,不同請(qǐng)求對(duì)應(yīng)不同的代碼路徑(例如成功請(qǐng)求奢讨,失敗請(qǐng)求等)。建議請(qǐng)求名稱最好用英文形式端礼,否則后期持續(xù)集成或許會(huì)出現(xiàn)問題(no zuo no dieG菪Α)入录。
?????在每條請(qǐng)求內(nèi)放置正則匹配(用于應(yīng)對(duì)需要返回值作為下次請(qǐng)求的參數(shù)的情況)以及斷言蛤奥。
● 請(qǐng)你進(jìn)行測(cè)試:前端下拉框?qū)崿F(xiàn),測(cè)試下拉框定位方式
參考回答:
Selenium+Python自動(dòng)化測(cè)試對(duì)下拉菜單的定位
1.通過selenium.webdriver.support.ui的Select進(jìn)行定位
下拉菜單如下圖:
定位代碼:
from selenium.webdriver.support.ui import Select
# 通過index進(jìn)行選擇
Select(driver.find_element_by_id("gender")).select_by_index(1)
# 通過value進(jìn)行選擇
Select(driver.find_element_by_id("gender")).select_by_value("2")
# 通過選項(xiàng)文字進(jìn)行選擇
Select(driver.find_element_by_id("gender")).select_by_visible_text("Male")
注:Select only works on <select> elements(Select只對(duì)<select>標(biāo)簽的下拉菜單有效).
2.定位非<select>標(biāo)簽的下拉菜單
非<select>標(biāo)簽的下拉菜單如下圖所示:
定位非<select>標(biāo)簽的下拉菜單中的選項(xiàng)僚稿,需要兩個(gè)步驟凡桥,先定位到下拉菜單,再對(duì)其中的選項(xiàng)進(jìn)行定位蚀同。
定位代碼:
# 先定位到下拉菜單
drop_down = driver.find_element_by_css_selector("div#select2_container > ul")
# 再對(duì)下拉菜單中的選項(xiàng)進(jìn)行選擇
drop_down.find_element_by_id("li2_input_2").click()
注:也可以用此方法定位<select>標(biāo)簽的下拉菜單缅刽。
● 請(qǐng)你來聊一聊appium斷言
參考回答:
appium-unittest單元測(cè)試框架中,TestCase 類提供了一些方法來檢查并報(bào)告故障蠢络,如下圖 :
上面所提供的斷言方法(assertRaises(), assertRaisesRegexp()除外)接收 msg 參數(shù)衰猛,如果指定, 將體作為失敗的錯(cuò)誤信息刹孔。
try:
num = input("Enter a number:")
assert (num == 10), "The number is not 10!"
except AssertionError,msg:
print msg
print ("Sadly, num not equals to 10")
在上面的程序中啡省,運(yùn)行到的python 的異常與斷言。通過 raw_input()方法要求用戶輸入一個(gè)數(shù)字,通過 arrsert 判斷用戶輸入的 num 是否等于10 卦睹; 通過 python 的 AssertionError 類型的異常來實(shí)捕獲這個(gè)異常畦戒, msg 接收異常信息并打印, 注意结序, msg 所結(jié)構(gòu)的異常信息是我們自定義的("The number is not10!") 障斋。
?assertEqual(first, second, msg=None):判斷 first 和 second 的值是否相等,如果不相等則測(cè)試失敗徐鹤,msg 用于定義失敗后所拋出的異 常信息垃环。
?assertNotEqual(first, second, msg=None):測(cè)試 first 和 second 不相等,如果相等凳干,則測(cè)試失敗晴裹。
?assertTure(expr,msg=None)、assertFalse(expr,msg=None):測(cè)試 expr 為 Ture(或?yàn)?False)
以下為python 2.7 版新增的斷言方法:
?assertIs(first, second, msg=None)救赐、assertIsNot(first, second, msg=None):測(cè)試的 first 和 second 是(或 不是)相同的對(duì)象涧团。
?assertIsNone(expr, msg=None)、assertIsNotNone(expr, msg=None):測(cè)試 expr 是(或 不是)為 None
?assertIn(first, second, msg=None)经磅、assertNotIn(first, second, msg=None):測(cè)試 first 是(或不是)在 second 中泌绣。second 包含是否包含 first 。
?assertIsInstance(obj, cls, msg=None)预厌、assertNotIsInstance(obj, cls, msg=None):測(cè)試 obj 不(或 不是)cls 的一個(gè)實(shí)例阿迈。 (obj 和 cls 可以是一個(gè)類或元組) ,要檢查他們的類型使用 assertIs(type(obj), cls)轧叽。
● 請(qǐng)你來說一下購物車的測(cè)試用例
參考回答:
界面測(cè)試
?????界面布局苗沧、排版是否合理;文字是否顯示清晰炭晒;不同賣家的商品是否區(qū)分明顯待逞。
2.功能測(cè)試
未登錄時(shí):
?????將商品加入購物車,頁面跳轉(zhuǎn)到登錄頁面网严,登錄成功后購物車數(shù)量增加识樱;
?????點(diǎn)擊購物車菜單,頁面跳轉(zhuǎn)到登錄頁面震束。
登錄后:
?????所有鏈接是否跳轉(zhuǎn)正確怜庸;
?????商品是否可以成功加入購物車;
?????購物車商品總數(shù)是否有限制垢村;
?????商品總數(shù)是否正確割疾;
?????全選功能是否好用;
?????刪除功能是否好用嘉栓;
?????填寫委托單功能是否好用宏榕;
?????委托單中填寫的價(jià)格是否正確顯示驰凛;
?????價(jià)格總計(jì)是否正確;
?????商品文字太長時(shí)是否顯示完整担扑;
?????店鋪名字太長時(shí)是否顯示完整恰响;
?????創(chuàng)新券商品是否打標(biāo);
?????購物車中下架的商品是否有特殊標(biāo)識(shí)涌献;
?????新加入購物車商品排序(添加購物車中存在店鋪的商品和購物車中不存在店鋪的商品)胚宦;
?????是否支持TAB、ENTER等快捷鍵燕垃;
?????商品刪除后商品總數(shù)是否減少枢劝;
?????購物車結(jié)算功能是否好用。
3.兼容性測(cè)試
?????不同瀏覽器測(cè)試卜壕。
4.易用性測(cè)試
?????刪除功能是否有提示您旁;是否有回到頂部的功能;商品過多時(shí)結(jié)算按鈕是否可以浮動(dòng)顯示轴捎。
5.性能測(cè)試
?????壓力測(cè)試鹤盒;并發(fā)測(cè)試。
● 請(qǐng)你進(jìn)行一下弱網(wǎng)模擬
參考回答:
方法一:charles弱網(wǎng)模擬
配置參數(shù)解析:
bandwidth —— 帶寬侦副,即上行侦锯、下行數(shù)據(jù)傳輸速度
utilisation —— 帶寬可用率,大部分modern是100%
round-trip latency —— 第一個(gè)請(qǐng)求的時(shí)延秦驯,單位是ms尺碰。
MTU —— 最大傳輸單元,即TCP包的最大size译隘,可以更真實(shí)模擬TCP層亲桥,每次傳輸?shù)姆职闆r。
Releability —— 指連接的可靠性固耘。這里指的是10kb的可靠率题篷。用于模擬網(wǎng)絡(luò)不穩(wěn)定。
Stability —— 連接穩(wěn)定性玻驻,也會(huì)影響帶寬可用性悼凑。用于模擬移動(dòng)網(wǎng)絡(luò)偿枕,移動(dòng)網(wǎng)絡(luò)連接一般不可靠璧瞬。
使用chrome的webview調(diào)試工具,缺點(diǎn)是只適用于web頁面的弱網(wǎng)模擬渐夸。
方法二:chrome的webview調(diào)試工具弱網(wǎng)模擬
使用chrome的webview調(diào)試工具嗤锉,缺點(diǎn)是只適用于web頁面的弱網(wǎng)模擬。
具體步驟:
(1)應(yīng)用打開webview調(diào)試功能墓塌,具體如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
(2)手機(jī)鏈接電腦瘟忱,運(yùn)行APP奥额,進(jìn)入具體H5頁面;
(3)chrome的DevTools中打開Webview:進(jìn)入chrome://inspect/#devices访诱,會(huì)顯示已經(jīng)連接設(shè)備垫挨,選中待調(diào)試webview的inspect
network頁面,No throttling下拉框触菜,可以進(jìn)行網(wǎng)絡(luò)模擬九榔。
方法三:iOS手機(jī)自帶Network Link Conditioner 弱網(wǎng)模擬
iPhone手機(jī)打開開發(fā)者選項(xiàng),具體參考:
設(shè)置-開發(fā)者選項(xiàng) > Network Link Conditioner 入口涡相。
系統(tǒng)已經(jīng)內(nèi)置常見網(wǎng)絡(luò)配置哲泊,也可以增加自定義配置。
具體配置參數(shù):
in Bandwidth 下行帶寬催蝗,即下行網(wǎng)絡(luò)速度
In packet loss 下行丟包率
in delay 下行延遲切威,單位ms
out bandwidth 上行帶寬
out packet loss 上行丟包率
out delay 上行延遲
DNS delay DNS解析延遲
protocol 支持Any,IPV4丙号、IPV6
interface 支持Any先朦,WI-Fi,cellular(蜂窩網(wǎng))
● 你寫的測(cè)試程序是怎么樣的犬缨,你寫過前端烙无、后端程序嗎?
參考回答:
開發(fā)測(cè)試驅(qū)動(dòng)程序一般分為4步:
1遍尺,指出需要的新特性截酷。可以記錄下來乾戏,然后為其編寫一個(gè)測(cè)試迂苛。
2,編寫特性的概要代碼鼓择,這樣程序就可以運(yùn)行而沒有任何語法等方面的錯(cuò)誤三幻,但是測(cè)試會(huì)失敗∧拍埽看到測(cè)試失敗是很重要的念搬,這樣就能確定測(cè)試可以失敗。如果測(cè)試代碼中出現(xiàn)了錯(cuò)誤摆出,那么就有可能出現(xiàn)任何情況朗徊,測(cè)試都會(huì)成功,這樣等于沒測(cè)試任何東西偎漫。再強(qiáng)調(diào)一遍:在試圖測(cè)試成功之前爷恳,先要看到它失敗。
3象踊,為特性的概要編寫虛設(shè)代碼温亲,能滿足測(cè)試要求就行棚壁。不用準(zhǔn)確的實(shí)現(xiàn)功能,只要保證測(cè)試可以通過即可栈虚。這樣一來就可以保證在開發(fā)的時(shí)候總是通過測(cè)試了袖外,(除了第一次測(cè)試的時(shí)候)甚至在最初實(shí)現(xiàn)功能時(shí)亦是如此。
4魂务,現(xiàn)在重寫(或者重構(gòu))代碼在刺,這樣它就會(huì)做自己應(yīng)該做的事,從而保證測(cè)試一直成功头镊。
在編碼完成時(shí)蚣驼,應(yīng)該保證代碼處于健康狀態(tài)--不要遺留下任何測(cè)試失敗。
寫過前段程序相艇。
如果對(duì)軟件測(cè)試有興趣颖杏,想了解更多的測(cè)試知識(shí),解決測(cè)試問題,以及入門指導(dǎo)坛芽,幫你解決測(cè)試中遇到的困惑留储,我們這里有技術(shù)高手。如果你正在找工作或者剛剛學(xué)校出來咙轩,又或者已經(jīng)工作但是經(jīng)常覺得難點(diǎn)很多获讳,覺得自己測(cè)試方面學(xué)的不夠精想要繼續(xù)學(xué)習(xí)的,想轉(zhuǎn)行怕學(xué)不會(huì)的活喊, 都可以加入我們1079636098丐膝,群內(nèi)可領(lǐng)取最新軟件測(cè)試大廠面試資料和Python自動(dòng)化、接口钾菊、框架搭建學(xué)習(xí)資料帅矗!