使用Beanshell Assertion实现Jmeter测试结果和数据库比对

原文:http://www.51testing.com/?uid-128005-action-spacelist-type-blog-itemtypeid-4380 

 

在使用jemeter的过程中,有时候希望能够将jmeter的响应结果直接和数据库进行比对,可以使用Beanshell Assertion实现Jmeter测试结果和数据库比对,参考如下  

import java.sql.*; 
import java.util.*; 
import java.lang.*; 
import org.apache.regexp.*; 
 
String drive = "com.mysql.jdbc.Driver"; 
String url = "jdbc:mysql://19x.16x.xx.xx:3306/"; 
String dbName = "Name"; 
String user = "user"; 
String pass = "pass"; 
 
String Myvar = vars.get("Param"); 
 
String query = "SELECT MyDescription From Mytable Where Mycriteria = '" + Myvar + "'"; 
Connection Mycon = null; 
Statement Mystmt = null; 
ResultSet Myrset = null; 
 
String[] Comp = new String[24]; 
RE rex; 
boolean found; 
 
String Mypattern; 
byte[ ] Myarr = (byte[ ])ResponseData; 
String Myresp = new String(Myarr); 
 
Mycon = DriverManager.getConnection(url+dbName, user, pass); 
Mystmt = Mycon.createStatement(); 
Myrset = Mystmt.executeQuery(query); 
 
int a=1; int b=0; 
while (Myrset.next()) 
{ 
Comp[b] = Myrset.getString(1); 
print(" "+ (a) +" " + Comp[b]); 
 
Mypattern = Comp[b]; 
rex = new RE(Mypattern); 
found = rex.match(Myresp); 
print(Mypattern + (found ? " DOES MATCH " : " DOESN'T MATCH ") + "Response Returned\n"); 
 
if (found==false)  
{ Failure = true; 
FailureMessage = "The Values in the Response do not match the expected data."; } 
 
a=a+1; b=b+1; 
} 
 
Myrset.close(); 
Mystmt.close(); 
 

    以上代码可以根据实际情况修改,可以实现数据库验证! 

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