什么,是的-SQL中使用到获取事务响应时间百分从LoadRunner的.mdb文件(what-is-

2019-10-20 19:38发布

我工作的一个项目,我们是直接打到LoadRunner的交易.mdb文件中提取原始数据。

MDB是各种表Microsoft Access数据库和存储信息。 任何一个可以帮助我,这表是指获得相关信息的响应时间? 一个表,我挑了“BasicTransactionPercentile”,但是这个表似乎很不一致,在一个.mdb文件它的存在和其他它不是。

请帮忙 !

Answer 1:

所有的mdb文件中的表和关系都记录在[元数据表,其中包括主键和外键。 对于事务信息,你将要与包含在[事件计表及其关系的原始数据担心自己。 您将需要拉你从[元数据]表类型的交易事件名称以及传递状态所需要的关系。

不像一些其他的数据库引擎,如SQL Server和Oracle,Access不具有一个内置的百分功能,你可以利用,这意味着你将需要从基础统计功能编写自己的。 你有没有考虑使用SQL Server,甚至是速成版,因为你的分析数据存储?



Answer 2:

使用jackcess API,这里是你如何从通过Java MDB文件中提取事务的东西的胆量。

你可以从Event_map“交易”事件ID列表

Table table = db.getTable("Event_map");

那么你可以去通了“Event_meter”表,并选择你想要的交易活动,这里是交易大纲执行和运行时间

Table table = db.getTable("Event_meter");
for (Row row : table) { .....
    //  The txn recored time "End Time" is the relative end time in seconds to 3 decimals of the txn.  Storing as epoch time in msecs  
    Double txnSecsFromStart =  (Double)row.get("End Time"); 
    Long txnEpochTimeMsecs = new Double( runStartTimeEpochMsecs + txnSecsFromStart * 1000 ).longValue();
    lrEventMeterBean.setEndTime(txnEpochTimeMsecs.toString()); 

    BigDecimal rawValue  = new BigDecimal((Double)row.get("Value"     )).setScale(6, RoundingMode.HALF_UP);
    BigDecimal thinkTime = new BigDecimal((Double)row.get("Think Time")).setScale(6, RoundingMode.HALF_UP);                 
    lrEventMeterBean.setValue( rawValue.subtract(thinkTime));   

.... //所以对其他领域

注:“runStartTimeEpochMsecs”从“结果”表中获得

由于数据处理在访问相当有限,我们将提取的数据加载到MySQL数据库。 然后获取值,如第90百分位,那场比赛的分析报告是可能的(花了一些工作!)。

PS:请记住我说的是这里有整个测试数据的mdb文件,过滤数据的处理方式不同。 IMO过滤后的数据太复杂,担心(该分析报告的神奇和复杂性是你所支付毕竟...)。 同样,我们使用MySQL数据库为基础的过滤。



文章来源: what-is-the-sql-used-to-get transaction response time percentile from Loadrunner .mdb file