2) JAVA应用
测试任务:测试待选的数据库的性能;
数据查询性能指标:20个用户并发,每秒执行增删改语句数不少于1000条;
数据库性能测试需求:数据库选型;
import java.sql.*;
import java.util.Date;
import java.util.Properties;
public class testsybase {
String sDbDriver = "com.*.*.*.*";
String sConnStr = "jdbc:*:*:ip_adress:port/sid";
private Connection conn = null;
private Statement stmt = null;
ResultSet rs = null;
public testsybase()
{
try {
Class.forName(sDbDriver);
} catch (java.lang.ClassNotFoundException e) {
System.err.println("testdb():" + e.getMessage());
}
}
public void executeUpdate()
{
stmt = null;
rs = null;
try {
conn = DriverManager.getConnection(sConnStr, "*", "*");
stmt = conn.createStatement();
System.out.println(new Date());
int j=0;
for(int i=0;i<10000;i++){
j=10001+i;
//追加
sql="insert into tablename(*, *, *...) "+"values('test"+i+"',*,*...)";
//更新
//sql="update tablename set field_no='testupdate',*,*... where filed_no="+j;
//删除
//sql="delete from tablename where tablename="+j;
//查询
//sql="select * from tablename where tablename="+j;
stmt.executeUpdate(sql);
//rs=stmt.executeQuery(sql);
//rs.next();
}
System.out.println(new Date());
//rs.close();
stmt.close();
conn.close();
System.out.println("Update is secuessful!");
} catch (SQLException ex) {
System.err.println("executeUpdate:" + ex.getMessage());
}
}
public void executeSql(String sql)
{
stmt = null;
rs = null;
try {
conn = DriverManager.getConnection(sConnStr, "*", "*");
stmt = conn.createStatement();
rs=stmt.executeQuery(sql);
rs.next();
System.out.println("Count is "+rs.getString(1));
stmt.close();
conn.close();
//System.out.println("OK");
} catch (SQLException ex) {
System.err.println("executeSql:" + ex.getMessage());
}
}
public static void main(String[] args) {
testsybase mytest = new testsybase();
mytest.executeUpdate();
}
}
上面的java代码调试通过后,可以通过注释不同的代码段,分别测试增加、修改、删除、查询的等情况的性能,并得出时长,反算出性能。
这里说明一点,java代码即可以单独的打成jar包,放在服务器上运行,也可以直接在本地IDE运行。如果觉得LoadRunner专业,也可以放到LoadRunner里运行,选择Java Vuser协议,这里需要注意的是,LoadRunner运行时,需要设置好Runtime Settings中的Classpath,代码运行需要的jar包都要加到这里。提醒一点的是,笔者使用的是LoadRunner 8.0,在跑上面的代码时,使用的是Java 1.4的虚拟机,高版本如1.5就不能成功运行。
从这个例子可以看出,此种应用灵活性强,任何数据库都可以做测试,只要有提供的驱动即可,如果需要,还可以扩展其他的方法。但测试人员需至少掌握一种高级编程语言,对数据库操作也必须很熟悉,要求较高,所以又引出了下面的Benchmark的应用方法。
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。