性能测试工具操作数据库(二)-Loadrunner与oracle

简介: Loadrunner支持oracle协议,可以选择协议录制方式,或手写脚本方式,本文讲的手写脚本方式,简洁方便。
版权声明:本文为博主原创文章,未经博主允许不得转载。欢迎访问我的博客 https://blog.csdn.net/smooth00/article/details/67631769

1、Loadrunner支持oracle协议,可以选择协议录制方式,或手写脚本方式,本文讲的手写脚本方式,简洁方便。

2、vuser_init文件代码(连接全放到init中,因为连接耗时耗资源,以保证性能测试时少连接):

vuser_init()
{
	lrd_init(&InitInfo, DBTypeVersion);
	lrd_initialize_db(LRD_DBTYPE_ORACLE, 2, 0);
	lrd_env_init(LRD_DBTYPE_ORACLE, &OraEnv1, 0, 0);
	lrd_ora8_handle_alloc(OraEnv1, SERVER, &OraSrv1, 0);
	lrd_ora8_handle_alloc(OraEnv1, SVCCTX, &OraSvc1, 0);
	lrd_ora8_handle_alloc(OraEnv1, SESSION, &OraSes1, 0);
	lrd_ora8_handle_alloc(OraEnv1, SESSION, &OraSes2, 0);
	//lrd_server_attach(OraSrv1, "qa70/orcl", 9, 0, 0);
	lrd_server_attach(OraSrv1, "qa70", -1, 0, 0);//lrd_server_attach(OraSrv1, "qa70", 4, 0, 0)
	lrd_ora8_attr_set_from_handle(OraSvc1, SERVER, OraSrv1, 0, 0);
	lrd_ora8_attr_set(OraSes1, USERNAME, "xtjg_test", -1, 0);//lr_decrypt("58b3e02f8ba0e4201c2c")
	//lrd_ora8_attr_set(OraSes1, PASSWORD, lr_decrypt("5487fff63e812b81"), -1, 0);
	lrd_ora8_attr_set(OraSes1, PASSWORD, "123456", -1, 0);
	lrd_ora8_attr_set_from_handle(OraSvc1, SESSION, OraSes1, 0, 0);
	lrd_session_begin(OraSvc1, OraSes1, 1, 0, 0);
	lrd_ora8_handle_alloc(OraEnv1, STMT, &OraStm1, 0);
	
	return 0;
}

2、action文件代码

Action()
{
    char *test;
	lr_load_dll("ole32.dll");      //引用windows生成GUID的API
	test=lr_guid_gen("GUID");      //调用上面lr_guid_gen()方法 
	lr_save_string(test,"GUID");

        lr_start_transaction("test-insert");

        lrd_ora8_handle_alloc(OraEnv1, STMT, &OraStm7, 0);
        lrd_ora8_stmt(OraStm7, "insert into ent_unionpunish " 
        " (id, limlow, lowdes, limdatefrom, limdateto, senddep, senddepname, recdep, recdepname, infotype,"
        "pripid, remark, organizationid, dataproway, errcode, subdate, feedbackdate, hanobjtype,"
        "persontype, name, certype, cerno, entname, uniscid, regno)"
        "values "
        "('{GUID}', 'v_limlow', 'v_lowdes', to_date('2016-12-11','yyyy/mm/dd'),"
        "to_date('2016-12-11','yyyy/mm/dd')," 
        "'v_senddep', 'v_senddepname', 'v_recdep', 'v_recdepname', 'v_infotype', 'v_pripid', 'v_remark'," 
        "'v_organizationid', 'v_dataproway', 'v_errcode',"
        "to_date('2016-12-11','yyyy/mm/dd'),to_date('2016-12-11','yyyy/mm/dd'), '1',"
        "'v_persontype', 'v_name', 'v_certype', 'v_cerno', 'v_entname', 'v_uniscid', 'v_regno')", 1, 0, 0);
        /*lrd_ora8_stmt(OraStm7, "update ent_unionpunish set hanobjtype=1 where name='smooth", 1, 0, 0);*/
        lrd_ora8_exec(OraSvc1, OraStm7, 1, 0, &uliRowsProcessed, 0, 0, 0, 0, 0);
        lrd_handle_free(&OraStm7, 0);

        lr_end_transaction("test-insert", LR_AUTO);

        lr_start_transaction("test-select");

        lrd_ora8_handle_alloc(OraEnv1, STMT, &OraStm7, 0);
        lrd_ora8_stmt(OraStm7, "select * from ry_jbxx,dz_zzxx where dz_zzxx.zzbh=ry_jbxx.RYZZBH and "
        " ry_jbxx.xm='{RYDZ_XM}' and ry_jbxx.csrq='{RYDZ_CSRQ}'", 1, 32, 0);
        lrd_ora8_exec(OraSvc1, OraStm7, 0, 0, &uliRowsProcessed, 0, 0, 0, 0, 0);//注意参数与insert的区别        
        lrd_handle_free(&OraStm7, 0);

        lr_end_transaction("test-select", LR_AUTO);
	return 0;
}

3、vuser_end文件代码

vuser_end()
{
	lrd_session_end(OraSvc1, OraSes1, 0, 0);
	lrd_server_detach(OraSrv1, 0, 0);
	lrd_handle_free(&OraEnv1, 0);

	return 0;
}


目录
相关文章
|
5月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
489 93
|
4月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
291 0
|
7月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
5月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
511 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
5月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
296 6
|
5月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
407 8
|
6月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
1352 10
|
7月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
383 11
|
6月前
|
监控 Java 数据挖掘
利用Jmeter工具进行HTTP接口的性能测试操作
基础上述步骤反复迭代调整直至满足预期目标达成满意水平结束本轮压力评估周期进入常态监控阶段持续关注系统运转状态及时发现处理新出现问题保障服务稳定高效运作
902 0
|
7月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。

推荐镜像

更多