jmeter调用接口获取随机身份证,beanshell写入到本地文件

 

目的: 

  1. 在自动生成身份证网站 http://www.welefen.com/lab/identify/ 抓取随机身份证号码, 

  2. 如果域txt文件已存在的号码不重复,则写入txt 

实现: 

  1. 该实现目的是为了配合jmeter其他接口调用,所以jmeter实现抓取身份证,并正则提取身份证号码(jmeter) 

  2. 提取到的号码通过beanshell中java代码实现判断是否重复、不重复则写入 

步骤: 

  1. 随机生成号码的网址www.welefen.com,jmeter接口调用 

( 5 「 u0335WE ) 一 1 
… 一 9030 : 1m3 
p ) - 一 5 亠 1 SJOIOtuæed 
「 e PV 5r8 
* 矼 一 dlIH

 

  1. 正则提取身份证号码(每次自动随机生成5个,每次只取一个,方便简单) 

正 则 表 达 式 提 取 
: 正 贝 才 
0 能 岫 0 “ 0 皂 and “ b 篷 唧 ; 
@ “ 》 “ n0000 
0 b . “ mg “ , 0 “ 皂 斷 № 
要 眙 自 蚋 昀 应 孛 
正 则 逖 : 
斗 1 n 以 过 2 红 以 00 “ 00 ? 卜 乖

 

  1. Beanshell实现去重、写入txt 

BeanSheII Postprocessor 
: BeanShell PO stft.cessor 
Reset bsh.'nterøreter tnrore each call 
Reset Interpreter: False 
parameters to be passed to geanShen String parameters and String 
Parameters: 
tile (overrides script) 
Fle Name: 
CtX prev 
import 
: String card: 
: stry( 
File 
file—new 
(fio .exi'ts()) 
String st" 
boolean isExist•faIse: 
isExist•true: 
break, 
MeredReaderclose(); 
if

 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.InputStreamReader; 
   
String card= vars.get("card"); 
try{ 
File file = new File("E:\\JMeter Scripts\\card.txt"); 
if (!file.exists()) 
 
file.createNewFile(); 
}   
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(new FileInputStream(file.getAbsolutePath()), "UTF-8")); 
String str=""; 
boolean isExist=false;  
while ((str=bufferedReader.readLine())!=null) 
 
if (str.trim().equals(card)) 
{ 
isExist=true; 
break; 
} 
} 
bufferedReader.close();  
if (!isExist) 
{ 
FileOutputStream fos = new FileOutputStream(file.getAbsoluteFile(),true);//true表示在文件末尾追加   
       fos.write(card.getBytes());   
       fos.write("\n".getBytes());   
       fos.close(); 
} 
} 
catch(IOException e) 
{ 
e.printStackTrace(); 
} 

  1. 线程循环10次,写入txt 

uO 巴 20 
2

 

  1. 写入结果如下 

posted @ 2017-11-28 11:13  春田花花同学会  阅读(3092)  评论(0编辑  收藏  举报