日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编写jmeter测试用例_JMeter 编写接口测试用例遇到的问题及解决

發(fā)布時間:2023/12/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编写jmeter测试用例_JMeter 编写接口测试用例遇到的问题及解决 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、BeanShell Sampler使用JS函數(shù)生成的日期月份小于10時是個位數(shù)

開始用的是:

"baseDate": "${__javaScript((new Date()).getFullYear()+'-'+ ((new Date()).getMonth()+1) + '-' + (new Date()).getDate(),)}"

生成的月份和日期小于10時都是個位數(shù),比如2018-9-8

如果接口文檔預(yù)期返回的格式是2018-09-08,則不匹配

一個辦法是,用java.util.Calendar類

import java.text.SimpleDateFormat;

import java.util.Calendar;

public String myDate(){

String res;

Calendar cal = Calendar.getInstance();

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

res = simpleDateFormat.format(cal.getTime());

return res;

}

vars.put("baseDate",myDate());

一個辦法是,用java.util.Date類

需注意 new Date(myYear-1900,month,day) 實際生成的月份是 month+1

需注意日期轉(zhuǎn)換

SimpleDateFormat("yyyy-MM-dd") 生成的結(jié)果日月個位時會在個位數(shù)前加0

SimpleDateFormat("yyyy-M-d") 生成的結(jié)果日月個位時就是個位數(shù)

日月是個位數(shù)生成的是兩位.png

日月是個位數(shù)生成的是一位.png

日月是兩位數(shù)生成的是兩位.png

二、下游接口M發(fā)送請求和接口N返回值都用到同一字段A,BeanShell Sampler事先設(shè)置好字段A

提前生成需要用的字段A.png

之后接口M請求用到此字段A.png

接口N返回值斷言用到字段A

舉一反三,只要某字段是唯一固定的,后面有很多地方用到,就可以事先把它設(shè)置好(通過獲取/新建),之后 ${name} 引用即可.

三、調(diào)用格式轉(zhuǎn)換函數(shù),注意函數(shù)參數(shù)的格式和傳參value值原來的格式

這個問題也是在生成日期進(jìn)行格式轉(zhuǎn)換時遇到的,當(dāng)時接口返回的createTime是個時間戳一串?dāng)?shù)字

時間戳是一串?dāng)?shù)字

時間戳轉(zhuǎn)換成年月日時分秒的函數(shù)如下:

import java.text.SimpleDateFormat;

import java.util.Date;

public String stampToDate(String s){

String res;

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

long lt = new Long(s);

Date date = new Date(lt);

res = simpleDateFormat.format(date);

return res;

}

重點來了,如果用以下這行代碼不能成功轉(zhuǎn)換,猜猜是為什么?

vars.put("createDateAndTime", stampToDate(String.valueOf(${createTime})));

1

2

3

想到了嗎?

因為 ${createTime} 獲取到的是一串?dāng)?shù)字,此處傳參需要是個字符串~

解決方法很簡單 加上雙引號 變成字符串~即

vars.put("createDateAndTime", stampToDate(String.valueOf("${createTime}")));

四、需求明確返回內(nèi)容不能包含某字段,校驗是否沒返回該字段,需事先特別設(shè)置

事例接口是獲取患者列表,有很多個患者(對象)。截圖只截了一部分如下:

接口返回的數(shù)組里有多個對象

斷言只是其中一個對象

接口運行是通的,沒有報錯。

因為默認(rèn)情況下,預(yù)期返回內(nèi)容"obj":[{a}],實際返回內(nèi)容"obj":[{a},{b},{c}],后面多出的內(nèi)容不會去校驗。

注意a必須是第一個,如果預(yù)期返回內(nèi)容"obj":[{c},{b}],實際返回內(nèi)容"obj":[{a},{b},{c}],則跑不通過。此時排序不確定只需要校驗是否包含在返回值內(nèi)的話,則可以預(yù)期結(jié)果勾選“只檢查數(shù)組中數(shù)據(jù)是否包含在預(yù)期結(jié)果中”

如果需求明確是返回內(nèi)容不能包含某字段,需校驗確實沒返回該字段,需事先設(shè)置。

斷言里面設(shè)置好預(yù)期不存在的字段

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的编写jmeter测试用例_JMeter 编写接口测试用例遇到的问题及解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。