수요가있다, 우리는 특정 계정 정보에 쿼리의 결과를 바탕으로 생성 한 후 계정 데이터의 수십만를 작성하고, 압력 시험 환경이 필요합니다.
내가 직접 파이썬 API를 호출, 데이터베이스 쿼리의 관행을 따르십시오;
그러나 최근에는 모든 데이터베이스 개발자에 대한 액세스가 나는 예외가 아니야, 제한된다. 당신은 데이터베이스에 액세스 할 수 있지만 쿼리 API가 없다, 잘 얻는다.
그럼, 해결책을 생각 약간, 가능한 테스트합니다. 다음과 같이 요약 기록 :
데이터가 JMeter를 함께 포스트 API를 생성하기 것은 다음을 달성하고 반환 값을 추출하고 로컬 파일로 저장.
그런데, 사실, 파이썬, 아무 문제, 사실, 할 것이다, 선택에 구현.
여기 달성하기 위해 JMeter를 함께 파이썬을 사용하기 전에 좀 더 만들었지 만, 또한 당신에게 간단한 요약 기록을 제공 할 수 있습니다. 으로는 다음과 같습니다 :
다음 단계 :
A. 새로운 TestPlan
. 다음과 같은 두 가지 구성 요소를 추가 :
1.TestPlan
2. 증가 설정 스레드 그룹
HTTP HTTP 헤더 관리자 증가합니다
配置 : 콘텐츠 형식 : 응용 프로그램 / JSON
HTTP 요청을 증가하십시오
특정 매개 변수 http://haochuangtest.com/api/rest/internal/v1/en/XXXenterprise/$ {} / cloudXXXXX을 POST
POST data:
{
"id": "",
"XXXXXNumber": "",
"displayName": "HAO-TEST",
"password": "",
"XXXXXPassword": "",
"autoXXX": 2,
"XXXModel": false,
"smartXXXX": 6,
"expireTime": -1,
"adminUserId": 0,
"adminDisplayName": "null",
"permanent": "true",
"XXXXXNumberType": 4,
"XXXXXId": "null",
"userXXXXXXXDisplayName": "null",
"configs": {
"conXXXX": "2"
}
}
5.增加 Regular Expression Extractor
<hashTree> <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true"> <stringProp name="RegexExtractor.useHeaders">false</stringProp> <stringProp name="RegexExtractor.refname">meetingNumber</stringProp> <stringProp name="RegexExtractor.regex">"meetingNumber":"(.+?)",</stringProp> <stringProp name="RegexExtractor.template">$1$</stringProp> <stringProp name="RegexExtractor.default"></stringProp> <stringProp name="RegexExtractor.match_number">1</stringProp> </RegexExtractor> <hashTree/>
6.增加 BeanShell PostProcessor
FileWriter fstream = new FileWriter("D:\\WORK_2020\\20200224_HAOCloud\\meetingId.txt",true); BufferedWriter out = new BufferedWriter(fstream); out.write(vars.get("meetingNumber")+ "\n"); out.close(); fstream.close();
7.增加 View Result Tree 察看结果树
3.调试配置并运行;
运行过程,查看结果数的返回结果就行,此处不做截图;
4.检查结果:
可见文件已经成功生成 :
注意点:
1.对于返回结果的正则部分要注意,差一个双引号或者.都可能出错,导致获取的结果为null;
2.对于两个引用的组件要注意,不要选错;
3.其中主要的就是这个 BeanShell后置处理器 ,要注意使用;
部分参考:https://www.cnblogs.com/yrxns/p/10912816.html ,但是该文章有点问题错误,看的时候要注意辨别;
当做性能压测时,可能会需要把响应数据的一些字段统计出来。这里简单介绍一下。
1、首先把接口调通,确定需要统计的字段,这里以统计ccmpSeq字段来做例子。
2、添加正则表达式提取器,用来提取响应结果中的ccmpSeq
正则表达式用""包起来,如HTTP请求完成后的响应数据
{
"ccmpSeq":"CBS_queryBalance20171023131825491588",
"respTime":"20180820105000",
"respCode":"0",
"respDesc":"操作成功",
"data":{
"totalAmount":19999991000,
"accountID":"acct1470001090166"
}
}
我们只需要统计ccmpSeq,所以正则表达式为 "ccmpSeq":"(.+?)"
() 表示括起来的部分就是要提取的。
4、添加线程数为10,运行后,打开123.csv,查看结果。