大多數(shù)人都使用 Jmeter做過性能測試,但是在使用的過程中你會發(fā)現(xiàn) 它不僅可以做性能測試和功能測試,就連基本的接口測試的需求也都可以滿足
相比其他工具 Jmeter入門比較低 安裝也比較方便,根據(jù)自己的需要可以擴(kuò)展一些插件,總之一句話 ,優(yōu)點(diǎn)很多哦。
為什么要做接口diff測試
(1)產(chǎn)品迭代較快,提高已有case回歸的效率,減輕工作量
(2)通過diff可以看到新的改動對已有功能的影響
(3)可以根據(jù)修改的代碼設(shè)置case,有針對性的測試。
(4)在開發(fā)聯(lián)調(diào)階段提前定位發(fā)現(xiàn)的問題。
下面就介紹下通過Jmeter進(jìn)行diff測試的步驟
1.添加測試計(jì)劃
2.添加Threads
3.添加Sampler-HTTP請求
舊版本的接口:interfaceV1
4.針對Sampler interfaceV1添加后置處理器-BeanShell PostProcessor,如圖
5.添加Sampler-HTTP請求
新版本的接口:interfaceV2
6.針對Sampler interfaceV2添加后置處理器-BeanShell PostProcessor
7.針對Sampler interfaceV2添加后置處理器-BeanShell Sampler
8.在BeanShell Sampler添加斷言-BeanShell斷言
下面是針對響應(yīng)的信息進(jìn)行簡單的比較
resultV1 = vars.get("version1");
String[] firstLines = resultV1.split("\n");
resultV2 = vars.get("version2");
String[] secondLines = resultV2.split("\n");
for (i=0; i<firstLines.length; i++) {
if (!firstLines[i].equals(secondLines[i])) {
j = i + 1;
Failure = true;
FailureMessage = FailureMessage + "\r第 " + j + " 行不同." + " \r\n版本1是: " + firstLines[i] + " \r\r\n版本2是: " + secondLines[i];
}else{
FailureMessage = FailureMessage + "\r兩個版本返回結(jié)果相同";
}
}
9.添加監(jiān)聽器-斷言結(jié)果
10.運(yùn)行腳本后,查看斷言結(jié)果
以上幾步就完成了一個簡單的接口diff測試
如果想實(shí)現(xiàn)自動化,可以集成到j(luò)enkins中
針對不同的環(huán)境,要想保證腳本都能夠正常運(yùn)行,可以添加配置元件-用戶定義的變量,將環(huán)境信息作為變量保存
如有其他小伙伴發(fā)現(xiàn)了更好的一些針對diff測試的工具或方法,請多多指點(diǎn)