s
start
loadrunner sap docs
http://www.sap.com/demos/richmedia/demos/sap-loadrunner-by-hp-optimize-the-quality-performance-and-scalability-of-end-to-end-business-processes-demo-us.epx
sap download
http://it.***.com/SNsoft/SAP_GUI_710.ZIP
http://it.***.com/SNsoft/gui710_13-10002995.exe
http://it.***.com/SNsoft/services.rar
http://it.***.com/SNsoft/SAP710(PeiZhi)V1.0.pdf
sap jco download
G:\projects\s*****_sap\sap_jco>dir
librfc32.dll // 2006/06/15 20:37 5,251,072
librfc32.dll.rar
lrapi.jar
sap-jco-3.0.8.jar
sapawrfc.dll
sapawrfc.rar
sapjco-linuxintel-2.1.8.rar
sapjco-linuxintel-2.1.8.tgz
sapjco.jar
sapjco.jar.png
sapjco3.dll
sapjco3.dll.rar
sapjco3_ntintel_32-3.0.8.dll
sapjco3_ntintel_32-3.0.8.rar
sapjco3_ntintel_64-3.0.8.dll
sapjco3_ntintel_64-3.0.8.rar
sapjcorfc.dll // 2006/06/15 20:37 3,723,264
sapjcorfc.dll.rar
snf-sap-jco-3.0.8.jar
snf-sap-jco-3.0.8.jar.png
snf-sap4j-1.0.2.jar
loadrunner sap 脚本无法录制问题解决
1、录制脚本需先登陆SAPGUI更改下述参数sapgui/user_scripting,缺省值为FALSE,该情况下不能录制脚本。需更改为true。
更改方法:
(1)查看Tcode:RZ11
(2)输入参数名称 sapgui/user_scripting
(3)更改为TRUE即可
loadrunner SAP 脚本录制,需SAP userscript 设置true即可录制。
D:\soft\sap\SAP_GUI_710\NW_2004s_Presentation\PRES1\GUI\WINDOWS\WIN32\SapGuiSetup.exe
prompt
please switch your terminal server to install mode before running SAPsetup .You can do this using the commandline "change user/install" and reset to execute mode using "change user/ execute "after installation . Do you want to correct your server mode Now ?
dos 输入
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.
C:\Documents and Settings\Administrator>change user /install
用户会话已准备好安装应用程序。
C:\Documents and Settings\Administrator>change user /execute
用户会话已准备好执行应用程序。
C:\Documents and Settings\Administrator>
再次重启电脑,点NO后,安装界面出现了
windows 2003 x64 sap patch setup sap gui 7.10 patch patchlevel 13
D:\soft\sap\gui710_13-10002995.exe
sap run
C:\Program Files (x86)\SAP\SapSetup\setup\SAL\SapLogon.s81
sap configuration
连接类型:自定义应用服务器
系统连接参数:
描述:my_sap_test
应用程序服务器:192.168.118.169
系统编号:00
系统标识:CRM
SAProute 字符串:null
loadrunner sap start sample
D:\Program Files (x86)\Mercury Interactive\Mercury LoadRunner\bin\LRLauncherApp.exe
-- File -- New Single Protocol Script -- SAPGUI -- OK
Start Recording
Applicatoin type:Win32 Applications
Program to record:D:\Program Files (x86)\SAP\SAPgui\saplogon.exe
Program arguments:null
Working directory:D:\Program Files (x86)\SAP\SAPgui
Recording into Action:Action
Record the application startup(勾选 pitch on)
ok
action.h
Action() { sapgui_open_connection_ex(" /SAP_CODEPAGE=1100 /FULLMENU 192.168.118.169 00 /3 /UPDOWNLOAD_CP=2", "s*****_SAP_test", "con[1]"); sapgui_select_active_connection("con[1]"); sapgui_select_active_session("ses[0]"); sapgui_select_active_window("wnd[0]"); sapgui_window_maximize( BEGIN_OPTIONAL, "AdditionalInfo=sapgui104", END_OPTIONAL); lr_start_transaction("登陆信息"); /*Before running script, enter password in place of asterisks in logon function*/ lr_think_time(24); sapgui_logon("wangqiang1", "654321", "200", "ZH", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1017", END_OPTIONAL); // 这里登录密码默认为星号,可改为明文654321,运行ok lr_think_time(4); sapgui_tree_set_selected_node("CIC0 - 联系中心 WinClient", shell1, "F00086", BEGIN_OPTIONAL, "AdditionalNodeInfo=收藏夹;CIC0 - 联系中心 WinClient", "AdditionalInfo=sapgui1018", END_OPTIONAL); sapgui_tree_press_key("Enter", shell1, "Enter", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1019", END_OPTIONAL); lr_think_time(6); sapgui_toolbar_press_button("??BP", shell2, "BPCR", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1022", END_OPTIONAL); lr_think_time(44); sapgui_set_text("姓 名", "*** ", txtUSER1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1025", END_OPTIONAL); sapgui_set_text("移动电话", "138********", txtUSER2, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1026", END_OPTIONAL); // 这里手机号可以参数化,以便下次能继续run ok sapgui_set_text("Email", "782817772@qq.com", txtUSER3, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1027", END_OPTIONAL); sapgui_set_text("证件号码", "320924198803225174", txtUSER4, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1028", END_OPTIONAL); sapgui_set_focus(ctxtUSER1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1029", END_OPTIONAL); sapgui_send_vkey(F4, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1031", END_OPTIONAL); lr_think_time(4); sapgui_select_active_window("wnd[1]"); sapgui_window_scroll_to_row("0", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1035", END_OPTIONAL); sapgui_set_focus(lbl1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1034", END_OPTIONAL); sapgui_send_vkey(F2, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1038", END_OPTIONAL); lr_think_time(4); sapgui_select_active_window("wnd[0]"); sapgui_send_vkey(ENTER, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1042", END_OPTIONAL); lr_think_time(14); sapgui_set_focus(cmbUSER1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1045", END_OPTIONAL); sapgui_select_combobox_entry("玄武区", cmbUSER1, "2", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1046", END_OPTIONAL); sapgui_select_combobox_entry("淮海路快递点", cmbUSER2, "025021A", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1049", END_OPTIONAL); lr_think_time(19); sapgui_set_text("路/道/街", "常府街 ", txtUSER5, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1052", END_OPTIONAL); sapgui_set_text("邮 编", "210005", txtUSER6, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1053", END_OPTIONAL); sapgui_set_focus(txtUSER6, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1054", END_OPTIONAL); sapgui_press_button("保存", btnSAVE1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1056", END_OPTIONAL); sapgui_status_bar_get_text("paramStatusBarText", BEGIN_OPTIONAL, "Recorded status bar text: 业务合作伙伴 1800490350 已创建 ", "AdditionalInfo=sapgui1059", END_OPTIONAL); lr_think_time(52); sapgui_toolbar_press_button("????", shell2, "ZS02", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1060", END_OPTIONAL); lr_end_transaction("登陆信息",LR_AUTO); lr_start_transaction("创建辅助安装订单"); lr_think_time(34); sapgui_set_text("ZCRMT_0100_BTX_UI02-ZZDQSPID", "101000451", ctxtZCRMT_0100_BTX_UI021, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1063", END_OPTIONAL); sapgui_send_vkey(ENTER, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1065", END_OPTIONAL); sapgui_select_active_window("wnd[1]"); sapgui_tree_set_hierarchy_header_width("135", shell3, "135", BEGIN_OPTIONAL, "AdditionalNodeInfo=", "AdditionalInfo=sapgui1068", END_OPTIONAL); sapgui_tree_select_item("SORG.1001, &Hierarchy", shell3, " 4", "&Hierarchy", BEGIN_OPTIONAL, "AdditionalNodeInfo=销售 ( 唯一 );SORG.1001", "AdditionalInfo=sapgui1069", END_OPTIONAL); sapgui_tree_scroll_to_item("SORG.1001, &Hierarchy", shell3, " 4", "&Hierarchy", BEGIN_OPTIONAL, "AdditionalNodeInfo=销售 ( 唯一 );SORG.1001", "AdditionalInfo=sapgui1070", END_OPTIONAL); sapgui_tree_set_checkbox("SORG.1001, &Hierarchy, True", shell3, " 4", "&Hierarchy", "True", BEGIN_OPTIONAL, "AdditionalNodeInfo=销售 ( 唯一 );SORG.1001", "AdditionalInfo=sapgui1071", END_OPTIONAL); sapgui_press_button("确定 (Enter)", btn1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1074", END_OPTIONAL); lr_think_time(34); sapgui_select_active_window("wnd[0]"); sapgui_select_combobox_entry("保内", cmbZCRMT_0100_BTX_UI021, "0", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1077", END_OPTIONAL); sapgui_select_combobox_entry("安装", cmbZCRMT_0100_BTX_UI022, "01", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1078", END_OPTIONAL); sapgui_set_text("GS_CUSTOM_ADDR-TEL_NUMBER", "02512345678", txtGS_CUSTOM_ADDR1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1079", END_OPTIONAL); sapgui_set_focus(ctxtGS_SERVICE_ORDER_H1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1080", END_OPTIONAL); sapgui_send_vkey(F4, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1082", END_OPTIONAL); sapgui_select_active_window("wnd[1]"); sapgui_calendar_focus_date("2011-11-25", shell4, "20111125", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1085", END_OPTIONAL); sapgui_calendar_select_interval("2011-11-25-2011-11-25", shell4, "20111125,20111125", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1086", END_OPTIONAL); lr_think_time(10); sapgui_select_active_window("wnd[0]"); sapgui_select_combobox_entry("上午", cmbGS_SERVICE_ORDER_H1, "09", BEGIN_OPTIONAL, "AdditionalInfo=sapgui1089", END_OPTIONAL); sapgui_set_focus(lblTEXT_01801, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1090", END_OPTIONAL); sapgui_press_button("展开组织", btnPB_ORG_EXPAND1, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1092", END_OPTIONAL); lr_think_time(6); sapgui_press_button("保存订单", btnAA_BUT101, BEGIN_OPTIONAL, "AdditionalInfo=sapgui1095", END_OPTIONAL); sapgui_status_bar_get_text("paramStatusBarText", BEGIN_OPTIONAL, "Recorded status bar text: 事务 7100019113 已保存", "AdditionalInfo=sapgui1098", END_OPTIONAL); // 上面可以精简成这样sapgui_status_bar_get_text("paramStatusBarText"); lr_end_transaction("创建辅助安装订单",LR_AUTO); return 0; }
LoadRunner Java Vuser / loadrunner java properties 文件未部署到agent机器C盘特定temp目录里导致压测异常解决 / zhunianxi 14090090 / 建议带有配置文件的java应用,如xml、properties都打成jar调用最好。
loadrunner java exception / 业务测试脚本如下:
D:\TestCase\20141008_datacenter_cassandra\tc_cassandra_GetResultMap_Batch\libra.perperties
# pre com.s*****.libra.cassandra.hosts=10.27.15.71,10.27.15.72,10.27.15.73 com.s*****.cassandra.keyspace=libra # sit #com.s*****.libra.cassandra.hosts=10.27.39.206,10.27.39.208 #com.s*****.cassandra.keyspace=libra
D:\TestCase\20141008_datacenter_cassandra\tc_cassandra_GetResultMap_Batch\tc_cassandra_GetResultMap_Batch.usr
/* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import com.s*****.libra.cassandra.GetResultCallback; import com.s*****.libra.client.LibraClient; import com.s*****.libra.client.LibraClientImpl; public class Actions { public int init() throws Throwable { return 0; }//end of init public int action() throws Throwable { lr.start_transaction("批量发送6条sql请求cassandra"); LibraClient c = new LibraClientImpl(); String epl = "<sql6>"; System.out.println(epl); Map<String, String> groupByMap = new HashMap<String, String>(); groupByMap.put("time_slot", "20140910_545"); c.getResultMap_Batch(epl, groupByMap, null, 2000, new GetResultCallback() { public void finish() { } public void callback(List<Map<String, String>> resultList) { for (Map<String, String> map : resultList) { for (Entry<String, String> e : map.entrySet()) { System.out.print(e.getKey() + " " + e.getValue() + " ;"); } } } }); lr.end_transaction("批量发送6条sql请求cassandra", lr.AUTO); return 0; }//end of action public int end() throws Throwable { return 0; }//end of end }
D:\TestCase\20141008_datacenter_cassandra\lib
2014-10-09 09:59 252,828 antlr4-runtime-4.1.jar 2014-10-09 09:59 281,694 bsh-2.0b4.jar 2014-10-09 09:59 541,332 cassandra-driver-core-2.0.3.jar 2014-10-09 09:59 322,362 cglib-nodep-2.2.jar 2014-10-09 09:59 160,519 commons-dbcp-1.4.jar 2014-10-09 09:59 60,686 commons-logging-1.1.1.jar 2014-10-09 09:59 111,119 commons-pool-1.6.jar 2014-10-09 09:59 2,833,724 db2jcc-9.5.3.jar 2014-10-09 09:59 313,898 dom4j-1.6.1.jar 2014-10-09 11:20 5,942,618 esper-s*****5.0.0-2.0.1.jar 2014-10-09 09:59 316,907 fastjson-1.1.15.jar 2014-10-09 09:59 2,228,009 guava-16.0.1.jar 2014-10-09 09:59 31,284 jcommander-1.12.jar 2014-10-09 09:59 245,039 junit-4.11.jar 2014-10-09 11:22 10,123 libra-client-2.0.1.jar 2014-10-09 11:20 118,121 libra-common-2.0.1.jar 2014-10-09 09:59 481,535 log4j-1.2.16.jar 2014-10-09 09:59 85,448 metrics-core-3.0.2.jar 2014-10-09 09:59 875,336 mysql-connector-java-5.1.28.jar 2014-10-09 09:59 1,231,993 netty-3.9.0.Final.jar 2014-10-09 09:59 25,515 org.abego.treelayout.core-1.0.1.jar 2014-10-09 09:59 23,445 slf4j-api-1.5.8.jar 2012-11-23 14:32 8,620 slf4j-log4j12-1.4.2.jar 2014-10-09 09:59 232,121 snakeyaml-1.6.jar 2014-10-09 09:59 597,777 testng-6.3.1.jar 2014-10-09 09:59 109,318 xml-apis-1.0.b2.jar
loadrunner java exception / loadrunner 场景测试异常报错如下:
D:\TestCase\20141008_datacenter_cassandra\Scenario_tc_cassandra_GetResultMap_Batch.lrs
Error: System.err: java.lang.ExceptionInInitializerError
Error: java.lang.NoClassDefFoundError: Could not initialize class com.s*****.libra.client.Configuration
Error: at com.s*****.libra.client.LibraClientImpl.<init>(LibraClientImpl.java:33)
at Actions.action(Actions.java:27)
Error: System.err: Caused by: java.lang.NullPointerException
Error: at com.s*****.libra.client.LibraClientImpl.<init>(LibraClientImpl.java:33)
at Actions.action(Actions.java:27)
Caused by: java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at com.s*****.libra.client.Configuration.init(Configuration.java:40)
at com.s*****.libra.client.Configuration.<clinit>(Configuration.java:34)
... 2 more
查找loadrunner agent 机器的日志
\\10.19.95.1\c$\Documents and Settings\Administrator\Local Settings\Temp\brr_UiR.449\netdir\D\TestCase\20141008_datacenter_cassandra\tc_cassandra_GetResultMap_Batch\res\log\tc_cassandra_getresultmap_batch_10.log
Start auto log messages stack - Iteration 1. [MsgId: MMSG-10545] Starting action Actions. [MsgId: MMSG-15919] Notify: Transaction "111" started. [MsgId: MMSG-16999] System.err: java.lang.NoClassDefFoundError: Could not initialize class com.s*****.libra.client.Configuration Error [MsgId: MMSG-17999] System.err: at com.s*****.libra.client.LibraClientImpl.<init>(LibraClientImpl.java:33) Error [MsgId: MMSG-17999] System.err: at Actions.action(Actions.java:27) Error [MsgId: MMSG-17999] Error: java.lang.NoClassDefFoundError: Could not initialize class com.s*****.libra.client.Configuration [MsgId: MERR-17999] Error: at com.s*****.libra.client.LibraClientImpl.<init>(LibraClientImpl.java:33) at Actions.action(Actions.java:27) [MsgId: MERR-17999] End auto log messages stack. [MsgId: MMSG-10544]
LoadRunner Java Vuser / loadrunner java properties 文件未部署到agent机器C盘特定temp目录里导致压测异常解决 / zhunianxi 14090090 / phone_md5:772d13e62aa14a9b2c900b24527b0cb4
解决方法:找到loadrunner controller 把java 脚本传递 到loadrunner agent 机器的路径带有netdir的类似目录,找到后放入lira.properties文件,如下:
,
ok
Narya性能测试(二) / Error (-17998): Failed to get [param not passed in call] thread TLS entry. 解决
http://kevindude.iteye.com/blog/869744
本来想用LoaderRunner对Narya的网络性能再做一次测试,LR的java vuser可以直接用java来编写测试脚本,本来还是挺方便的,但是不知道为什么脚本一跑起来就报这么个错:
Error (-17998): Failed to get [param not passed in call] thread TLS entry.
实在是有点郁闷的,网上搜索了很久也没找到个所以然,只是有人模模糊糊的指出,有可能是LR的java vuser脚本不支持多线程。想来也是,LR是靠license的并发数来卖钱的,如果你一个vuser可以开多个线程,每个vuser开100个线程,那一个100人的license就可以当1万人来用了,但我们narya的一个client本身就要开几个线程,看来是无法用LR来测了。
好在开源的社区里还有一个叫JMeter的性能测试工具。我们希望通过工具能够更灵活的来配置我们的测试用例,包括并发用户数,每个用户发送的请求数,和每个请求之间的间隔时间等。JMeter内置了一种叫做java sampler的sampler,我们需要继承AbstractJavaSamplerClient这个类,实现它的下面这个方法。
public SampleResult runTest(JavaSamplerContext javasamplercontext)
请问Error-27780:Connection reset by peer错误该怎么解决
http://bbs.51testing.com/thread-512650-1-1.html
给后来人一些提示吧:
HTTPS脚本加: web_set_sockets_option("SSL_VERSION","TLS"); //设置HTTPS相关信息,版本可以SSL通过浏览器查看
头信息加: web_add_header("X-Requested-With", "XMLHttpRequest");//设置相关头信息,根据每个产品的而定,可以抓包查看,也可以在录制的时候录制所有的头信息
报错案例二
Starting action Action. Action.c(6): Notify: Transaction "http-post 请求" started. Action.c(8): web_submit_data("http-post") started [MsgId: MMSG-26355] Action.c(8): t=608ms: Connecting [0] to host 10.27.84.101:443 [MsgId: MMSG-26000] Action.c(8): t=611ms: Connected socket [0] from 10.19.95.13:34737 to 10.27.84.101:443 in 1 ms [MsgId: MMSG-26000] Action.c(8): Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "10.27.84.101" failed: [10054] Connection reset by peer [MsgId: MERR-27780] Action.c(8): t=619ms: Closed connection [0] to 10.27.84.101:443 after completing 0 requests [MsgId: MMSG-26000] Action.c(8): Warning -26000: Empty or no response for URL="https://10.27.84.101/foo?name=111&passd=222&user=xxx&nick=rrr&id=333&name1=111&passd1=222&user1=xxx&nick1=rrr&id1=333" [MsgId: MWAR-26000] Action.c(8): web_submit_data("http-post") highest severity level was "ERROR", 0 body bytes, 0 header bytes [MsgId: MMSG-26388] Action.c(8): Notify: Transaction "http-post 请求" ended with "Fail" status (Duration: 0.6737 Wasted Time: 0.6013). Ending action Action.
案例二解决方案 / SSL与TLS 区别 以及介绍 http://hengstart.iteye.com/blog/840561
主站的证书从ssl3.0更换成TLS1.0,LR默认是ssl3.0的;在脚本开始加个函数就解决了,函数如下:
web_set_sockets_option("SSL_VERSION","TLS");
JAVA连接SAP配置(LIB包在SAP LIB中)
D:\lr>tree /f
卷 data 的文件夹 PATH 列表
卷序列号为 C8CE-1864
D:.
├─bin
│ librfc32.dll
│ sapjco3.dll
│ sapjcorfc.dll
└─classes
sapjco.jar
snf-sap-jco-3.0.8.jar
D:\>lr\classes\sapjco.jar
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.4
Created-By: 1.3.1_18-b01 (Sun Microsystems Inc.)
Specification-Title: SAP Java Connector
Specification-Version: 2.1.7
Specification-Vendor: SAP AG, Walldorf
Implementation-Title: com.sap.mw.jco
Implementation-Version: 20060615 2037 [2.1.7 (2006-06-12)]
Implementation-Vendor-Id: com.sap
Implementation-Vendor: SAP AG, Walldorf
Main-Class: com.sap.mw.jco.About
D:\>lr\classes\snf-sap-jco-3.0.8.jar
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: 11080241
Build-Jdk: 1.6.0_29
Main-Class: com.sap.conn.jco.rt.About
sapjco-linuxintel-2.1.8.tgz
H:\projects\sap_jco\sapjco-linuxintel-2.1.8>ls -l
total 8965
-rw-rw-rw- 1 user group 354 Jan 9 2007 Readme.txt
drwxrwxrwx 1 user group 0 Apr 25 18:22 demo
drwxrwxrwx 1 user group 0 Apr 25 18:22 docs
-rw-rw-rw- 1 user group 5046073 Jan 9 2007 librfccm.so
-rw-rw-rw- 1 user group 3827533 Jan 9 2007 libsapjcorfc.so
-rw-rw-rw- 1 user group 304418 Jan 9 2007 sapjco.jar
1)SUN JDK1.5(API 运行)
WINDOWS
把librfc32.dll,sapjcorfc.dll放入WINDOWS SYSTEM32目录下项目中引用sapjco.jar。
LINUX
把librfccm.so,libsapjcorfc.so 放入任意目录并且在.brash.rc文件中引入环境变量。项目中引用sapjco.jar。
2)IBM WEBSPHERE JDK1.5(WEB 运行)
LINUX
把librfccm.so,libsapjcorfc.so 放入IBM/WebSphere/AppServer/bin中并在.brash.rc文件中引入该目录环境变量。在IBM/WebSphere/AppServer/lib/中加入sapjco.jar。
测试环境是否成功:bash-2.05b# /export/home/oracle/midtier/jdk/jre/bin/java -jar sapjco.jar -stdout
Loadrunner8.1 + JDK1.5如何解决System Exceptions: EXCEPTION_ACCESS_VIOLATION
http://www.51testing.com/?uid-114582-action-viewspace-itemid-234320
Java Vuser协议的遇到Exception was raised when calling abort-cleanup function in extension java_int.dll: System Exceptions: EXCEPTION_ACCESS_VIOLATION问题,现讲解下这个问题的解决方法。
首先,保证纯净的操作系统
我 之前装的是Loadrunner9.5,准备配JDK1.6,最后怎么都是报错,然后采用Loadrunner8.1 + JDK1.5问题依旧,最后重装了系统,采用Loadrunner8.1 + JDK1.5问题解决。连网上说的A_lrunner_java_protocol_fixes_Feb_05.exe的补丁也未打。
http://dl.iteye.com/topics/download/7a339524-b7a3-382e-a729-0e03cec0417e
http://www.51testing.com/ddimg/uploadsoft/20091222/LR_java.zip
其次:确认JDK环境变量是否正确设置
Windows xp下配置JDK环境变量:
1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;
2.安装完成后,右击“我的电脑”,点击“属性”;
3.选择“高级”选项卡,点击“环境变量”;
4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;
5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:\java\jdk1.5.0_08,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量);
Path使得系统可以在任何路径下识别java命令,设为:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)
%JAVA_HOME%就是引用前面指定的JAVA_HOME;
6.“开始”->;“运行”,键入“cmd”;
7.键入命令“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;
8. DOS中查看相关环境变量是否正常显示echo %path%,echo %classpath%,echo %java_home%。
再则,相关的Class有没有Import进去。
保证上面三步,就可以解决System Exceptions: CEPTION_ACCESS_VIOLATION报错问题。
[原创]如何解决LodRunner中报错关于Error -10489 : Exception was raised when calling per-thread-terminate function
http://www.cnblogs.com/mayingbao/archive/2006/05/27/410708.html
[原创]如何解决LodRunner中报错关于Error -10489 : Exception was raised when calling per-thread-terminate function 在用Loadrunner实施性能测试时,采用Goal模式加压,存在如果持续长时加压时LoadRunner的Controller会报 Error -10489 : Exception was raised when calling per-thread-terminate function错误;
问题产生原因:
Unlike the earlier Windows versions, Windows 2000 and Windows XP have the default environment set to C:\Document and Settings\<user-name>\Local Settings\Temp instead of C:\Windows\temp. This long path with a space can cause several problems for LoadRunner. To resolve the issue, change to a directory without empty spaces.
解决方法:
在C盘(或是其它盘均可以)新建TEMP文件夹(为了后续设置临时文件准备)
右键"我的电脑"->高级->环境变量->编辑修改TEMP变量目录,指身上面新建的目录,如我的指向C:\TEMP->保存即可^_^
SAP ATP 应用服务负载均衡 192.168.40.224 test
http://mylinux.5d6d.com/thread-913-1-1.html
http://hi.baidu.com/%BD%A3%CA%A5_%B7%A8%CA%A6/blog/item/5299cc09e2d8b5c23ac763fe.html
共两步,一是服务器的设置,二是客户端登陆设置。
先在SAP中使用SMLG 进行服务器分组。实例名是SAP系统中定义过的,你没法删也没改。。我们先建一个Group,然后给Group命名为X,把实例加到组中。服务器的配置就这么简单。
下面在用户端设置SAP message服务器,为下一步作准备。
填入以上信息,如果出现1处的错误信息,那么需要执行以下步骤设定Service端口映射:
SAP登陆时会从Windows的service文件中获取服务名称,需要在这个文件中指定service名称与端口映射,
在%systemroot%\system32\drivers\etc\中打开文件services并在其最后加入一行:
sapmsCID 36xx/tcp
SID是SAP系统的SID(系统ID)号码,需要被替换为你自己的,在SID与3600中的间隔推荐用Tab键而不是使用空格分隔,如果讯息服务器填的是主机名,并且没有DNS来解析,那么还需要在上面指定的目录中的hosts文件中加入IP到主机名的映射
注意:
从理论上讲(自已想像的),SAPGUI总是连接到SAP message服务器,message服务器则判断当前各服务器的响应时间,哪台响应时间最短,则让GUI连到哪台。如果你发现你的服务器配配置都差不 多,但GUI很多都连在一台服务器上,那说明另一台响应时间有点问题需要调整了。你随时可以通过AL08查看各服务器的登陆情况,也可以通过SMLG按 F5查看各服务器的响应时间。
可能遇到的问题
1、在给用户配置客户端登陆时,系统标识中输入PRD,但无法解析出IP。
解决:未配置消息服务器,请更改sapmsg.ini文件。
2、系统标识中输入PRD后,无法选择组服务器,出现一个错误提示,还是乱码的
原因没找到,估计是service文件中某些通讯端口设置有问题,造成无法与message服务器通信,当然也就没法选择组服务器了。
解决:从其他正常的机器上找到windows安装目录下的system32\drivers\etc下的service文件,拷一个过来覆盖就好。
JCO连接怪现象
http://www.iteye.com/problems/3667
这两天用JCO做个接口从数据库导数据进R/3
昨天调好得程序今天来调试结果报如下异常,JCO连接也不起作用了
Exception in thread "DefaultQuartzScheduler_Worker-4" java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path [C:\Program Files\Java\jdk1.5.0_06\bin;C:\Tomcat 5.5\bin]
貌似是说librfc32.dll sapjcorfc.dll两个动态库得问题。
开始我没注意,我采用在类里面嵌入web测试,发现我得SAP配置是正确得,也能正常插入数据,为什么在web容器里面就跑不起来,应说我的两个库文件不在还是怎么着。
无奈之下只有将这两个库文件外加sapjco.jar一起粘贴进
C:\Program Files\Java\jdk1.5.0_06\bin
C:\Tomcat 5.5\bin
结果程序跑起来了…………
Call BAPI with SAP Enterprise Connector Guide
Call__BAPI__with__SAP__Enterprise_Connector_Guide.pdf.rar
http://sapjava.iteye.com/blog/412107
This document is step by step guide on how to calling BAPI in Java with SAP Enterprise connector.
SAP BAPI is remote enabled function module, and we can call it with JCO library. SAP Enterprise Connector is a wizard to generate proxy code for calling remote function module.
1.Install NWDS
First download NWDS from SDN, SAP NetWeaver Composition Environment 7.1 SR5 - Trial Version
You should register an account in SDN first.
Extract downloaded files to temp folder. Then install NWDS follow the installation instruction..
2.Create Java Project
Start Netweaver Development Studio, create Java project.
Add related library to build path:
3.Create proxy class with SAP Enterprise Connector
Select the function module , and click Finish button, Waiting for NWDS will generate proxy codes.
4.Test generated proxy class
- JCO.Client jcoClient = JCO.createClient(
- "800",
- "CP.WANG",
- "justin65",
- "EN",
- "/H/eclass.efglobe.com/H/sapecc",
- "01");
- jcoClient.setProperty("jco.client.codepage", "4110");
- CompanyCode_PortType proxy = new CompanyCode_PortType();
- proxy.messageSpecifier.setJcoClient(jcoClient);
- jcoClient.connect();
- Bapi_Companycode_Getlist_Input input = new Bapi_Companycode_Getlist_Input();
- try {
- Bapi_Companycode_Getlist_Output output = proxy.bapi_Companycode_Getlist(input);
- Bapi0002_1Type[] codes = output.getCompanycode_List();
- if(codes!=null && codes.length> 0){
- int len = codes.length;
- for(int i=0;i<len;i++){
- System.out.printf("%-10s", codes[i].getComp_Code());
- System.out.print(new String(new String(codes[i].getComp_Name()).getBytes("UTF-8"),"GBK"));
- System.out.println();
- }
- }
- } catch (ApplicationFaultException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SystemFaultException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- jcoClient.disconnect();
Question:
1.Exception:RFC_ERROR_COMMUNICATION
Exception in thread "main" com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: SAP_CMINIT3 : rc=20 > Connect to SAP gateway failed
Connect_PM GWHOST=sapecc, GWSERV=sapgw01, SYSNR=01
LOCATION CPIC (TCP/IP) on local host
ERROR hostname 'sapecc' unknown
TIME Sat Jun 20 16:08:59 2009
RELEASE 710
COMPONENT NI (network interface)
VERSION 39
RC -2
MODULE ninti.c
LINE 895
DETAIL NiPGetHostByName: 'sapecc' not found
SYSTEM CALL getaddrinfo
COUNTER 1
at com.sap.mw.jco.rfc.MiddlewareRFC$Client.nativeConnect(Native Method)
at com.sap.mw.jco.rfc.MiddlewareRFC$Client.connect(MiddlewareRFC.java:1125)
at com.sap.mw.jco.JCO$Client.connect(JCO.java:3138)
at com.rfc.test.RFCTest.main(RFCTest.java:36)
Solution: When you connect to SAP system in java with JCO.Client , if you want to use SAP router string , please replace SAP host name with “/Hrouter_string/Hhostname” format.
2. Exception :
java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path [C:\Program Files\Java\jdk1.6.0_11\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;E:\oracle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Programiles\Java\jdk1.6.0_11\bin;;D:\OpenSource\apache-ant-1.7.0\bin;D:\Program Files\MySQL\MySQL Server 5.0\bin ]
at com.sap.mw.jco.JCO.<clinit>(JCO.java:776)
at com.rfc.test.RFCTest.getCmp(RFCTest.java:62)
at com.jt.CompanyPanel.setData(CompanyPanel.java:28)
at desktopapplication1.DesktopApplication1View.showCompanyCode(DesktopApplication1View.java:248)
Solution: Copy sapjcorfc.dll, librfc32.dll into C:\Windows\System32, these files exist in SAP JCO library, and you could download from SAP Service Market Place, quick link connectors.
http://searchsap.techtarget.com/generic/0,295582,sid21_gci1095552,00.html
Summary:
Read reference of JCO before programming. Follow the install guide of JCO library.
林源:
SAP_JCO登录参数:
logonProperties.setProperty("jco.client.client", "800"); // 800 PRE 系统
logonProperties.setProperty("jco.client.user", "12061789"); // atp
logonProperties.setProperty("jco.client.passwd", "1234567890");// 654321
logonProperties.setProperty("jco.client.ashost", "10.19.250.5");
logonProperties.setProperty("jco.client.mshost", "10.19.250.5");
logonProperties.setProperty("jco.client.group", "atp_grp");// load
I005接口: ZIMS_MM_ORIGIN
inTable.setValue("000000000<cmmdtyCode>", "CMMDTY_CODE");//按照提供文件
inTable.setValue("<PLANT_CODE>", "PLANT_CODE");//按照提供文件
inTable.setValue("0001", "INV_LOCAT");//按照提供文件
inTable.setValue("71000<SERIAL_NO>", "SERIAL_NO"); // 和单据号一样递增20位
inTable.setValue("SAP", "SRC_SYS");// 固定
inTable.setValue("PO", "DOC_TYPE");// 固定
inTable.setValue("<DOC_NO>", "DOC_NO");// 和流水号相同递增20位
inTable.setValue("10", "DOC_ITEM");// 固定
inTable.setValue("0000123456", "BATCH_NO");// 按照提供文件
inTable.setValue("10", "CMMDTY_QTY");// 固定
inTable.setValue("<ReqDate>", "REQUEST_DATE");//固定 inTable.setValue("NEW", "OPERATION_TYPE");// 固定
问题1-------------------------------------
D:\TestCase\20140414_sap_kucun
Virtual User Script started at : 2014-04-15 15:04:12
Starting action vuser_init.
Error: System.err: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path [C:\Program Files\HP\LoadRunner\bin;.;C:\Documents and Settings\Administrator\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\Documents and Settings\Administrator\WINDOWS;C:\Program Files\Java\jdk1.6.0_10\jre\bin\client;C:\PROGRA~1\HP\LOADRU~1\bin;C:\PROGRA~1\HP\LOADRU~1\bin\gecko;C:\PROGRA~1\HP\LOADRU~1\bin\tulip\bin;C:\Program Files\Java\jdk1.6.0_10\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\strawberry\c\bin;C:\strawberry\perl\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\SinoVoice\jTTS 5.0 Desktop\Bin;C:\Program Files\Java\jdk1.6.0_10\bin;D:\PROGRA~1\db2\BIN;D:\PROGRA~1\db2\FUNCTION;D:\PROGRA~1\db2\SAMPLES\REPL;C:\Documents and Settings\Administrator\WINDOWS;] Error
System.err: at com.sap.mw.jco.JCO.<clinit>(JCO.java:776) Error
System.err: at Actions.init(Actions.java:36) Error
Error: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [no sapjcorfc in java.library.path]. java.library.path [C:\Program Files\HP\LoadRunner\bin;.;C:\Documents and Settings\Administrator\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\Documents and Settings\Administrator\WINDOWS;C:\Program Files\Java\jdk1.6.0_10\jre\bin\client;C:\PROGRA~1\HP\LOADRU~1\bin;C:\PROGRA~1\HP\LOADRU~1\bin\gecko;C:\PROGRA~1\HP\LOADRU~1\bin\tulip\bin;C:\Program Files\Java\jdk1.6.0_10\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\strawberry\c\bin;C:\strawberry\perl\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\SinoVoice\jTTS 5.0 Desktop\Bin;C:\Program Files\Java\jdk1.6.0_10\bin;D:\PROGRA~1\db2\BIN;D:\PROGRA~1\db2\FUNCTION;D:\PROGRA~1\db2\SAMPLES\REPL;C:\Documents and Settings\Administrator\WINDOWS;]
Error: at com.sap.mw.jco.JCO.<clinit>(JCO.java:776)
at Actions.init(Actions.java:36)
Failed to get file name and line of the script for failed transaction "vuser_init_Transaction".
Abort was called from an action.
Virtual User Script started at : 2014-04-15 15:09:14
Starting action vuser_init.
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Actions.
Notify: Transaction "getTotalExecTime" started.
Notify: Transaction "getRepository" started.
Error: System.out: Exception:Connect to message server failed
Connect_PM MSHOST=10.19.250.5, R3NAME=ATE, GROUP=atp_grp
LOCATION CPIC (TCP/IP) on local host
ERROR service 'sapmsATE' unknown
TIME Tue Apr 15 15:09:14 2014
RELEASE 640
COMPONENT NI (network interface)
VERSION 37
RC -3
MODULE ninti.c
LINE 505
DETAIL NiPGetServByName2: service 'sapmsATE' not found
SYSTEM CALL getservbyname_r
COUNTER 1
Notify:
Error: Exception:Connect to message server failed
Connect_PM MSHOST=10.19.250.5, R3NAME=ATE, GROUP=atp_grp
LOCATION CPIC (TCP/IP) on local host
ERROR service 'sapmsATE' unknown
TIME Tue Apr 15 15:09:14 2014
RELEASE 640
COMPONENT NI (network interface)
VERSION 37
RC -3
MODULE ninti.c
LINE 505
DETAIL NiPGetServByName2: service 'sapmsATE' not found
SYSTEM CALL getservbyname_r
COUNTER 1
Ending action Actions.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Error: Vuser started transaction "getRepository", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.
Notify: Transaction "getRepository" ended with "Fail" status (Duration: 0.0951).
Error: Vuser started transaction "getTotalExecTime", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.
Notify: Transaction "getTotalExecTime" ended with "Fail" status (Duration: 0.0977).
Ending action vuser_end.
Vuser Terminated.
解决1:
把sapjco.jar放入脚本环境变量如下图
http://dl2.iteye.com/upload/attachment/0096/1446/f0da5661-5439-3737-8951-057f3103ec91.png
把sapjcorfc.dll和librfc32.dll放入C:\Program Files\HP\LoadRunner\bin\
http://www.iteye.com/problems/3667
http://sapjava.iteye.com/blog/412107
http://www.efglobe.com/
问题2-----------------------------------------------------------
Virtual User Script started at : 2014-04-15 15:09:14
Starting action vuser_init.
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Actions.
Notify: Transaction "getTotalExecTime" started.
Notify: Transaction "getRepository" started.
Error: System.out: Exception:Connect to message server failed
Connect_PM MSHOST=10.19.250.5, R3NAME=ATE, GROUP=atp_grp
LOCATION CPIC (TCP/IP) on local host
ERROR service 'sapmsATE' unknown
TIME Tue Apr 15 15:09:14 2014
RELEASE 640
COMPONENT NI (network interface)
VERSION 37
RC -3
MODULE ninti.c
LINE 505
DETAIL NiPGetServByName2: service 'sapmsATE' not found
SYSTEM CALL getservbyname_r
COUNTER 1
Notify:
Error: Exception:Connect to message server failed
Connect_PM MSHOST=10.19.250.5, R3NAME=ATE, GROUP=atp_grp
LOCATION CPIC (TCP/IP) on local host
ERROR service 'sapmsATE' unknown
TIME Tue Apr 15 15:09:14 2014
RELEASE 640
COMPONENT NI (network interface)
VERSION 37
RC -3
MODULE ninti.c
LINE 505
DETAIL NiPGetServByName2: service 'sapmsATE' not found
SYSTEM CALL getservbyname_r
COUNTER 1
Ending action Actions.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Error: Vuser started transaction "getRepository", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.
Notify: Transaction "getRepository" ended with "Fail" status (Duration: 0.0951).
Error: Vuser started transaction "getTotalExecTime", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.
Notify: Transaction "getTotalExecTime" ended with "Fail" status (Duration: 0.0977).
Ending action vuser_end.
Vuser Terminated.
解决:数据源sapmsATE 无法连通,库存中心 SIMS/ ATE
打开文件:C:\WINDOWS\system32\drivers\etc\services
添加内容:
sapmsPMP 3600/tcp # 价格生产机
sapmsWLE 3600/tcp # 物流预生产
sapmsATE 3600/tcp # 库存预生产
问题3----------------------------
Virtual User Script started at : 2014-04-15 15:18:01
Starting action vuser_init.
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Actions.
Notify: Transaction "getTotalExecTime" started.
Notify: Transaction "getRepository" started.
Error: System.out: Exception:Connect to message server failed
Connect_PM MSHOST=10.19.250.5, R3NAME=PRE, GROUP=atp_grp
LOCATION CPIC (TCP/IP) on local host
ERROR service 'sapmsPRE' unknown
TIME Tue Apr 15 15:18:01 2014
RELEASE 640
COMPONENT NI (network interface)
VERSION 37
RC -3
MODULE ninti.c
LINE 505
DETAIL NiPGetServByName2: service 'sapmsPRE' not found
SYSTEM CALL getservbyname_r
COUNTER 1
Notify:
Error: Exception:Connect to message server failed
Connect_PM MSHOST=10.19.250.5, R3NAME=PRE, GROUP=atp_grp
LOCATION CPIC (TCP/IP) on local host
ERROR service 'sapmsPRE' unknown
TIME Tue Apr 15 15:18:01 2014
RELEASE 640
COMPONENT NI (network interface)
VERSION 37
RC -3
MODULE ninti.c
LINE 505
DETAIL NiPGetServByName2: service 'sapmsPRE' not found
SYSTEM CALL getservbyname_r
COUNTER 1
Ending action Actions.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Error: Vuser started transaction "getRepository", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.
Notify: Transaction "getRepository" ended with "Fail" status (Duration: 0.1366).
Error: Vuser started transaction "getTotalExecTime", but did not reached a corresponding end transaction statement. The transaction ended automatically with status 'fail'.
Notify: Transaction "getTotalExecTime" ended with "Fail" status (Duration: 0.1415).
Ending action vuser_end.
Vuser Terminated.
解决:数据源sapmsPRE 无法连通库存中心 SIMS/ATE
打开文件:C:\WINDOWS\system32\drivers\etc\services
添加内容:
sapmsPMP 3600/tcp # 价格生产机
sapmsWLE 3600/tcp # 物流预生产
sapmsATE 3600/tcp # 库存预生产
sapmsPRE 3600/tcp # 库存预生产
loadrunner sap exception
问题:loadrunner 录制SAP界面客户端脚本时,发现录制到SAP 数据表横向滚动条定位不到的情况
解决:loadrunner 录制SAP界面,不用手动拖拽横向滚动条,需要点击SAP自开发的下一条数据的按钮。
loadrunner web转javavUser协议的脚本的方法:
1、录制web协议脚本,将Action.c放到一个目录下(可以改名字也可以不改)
2、采用LR的bin目录下的命令:
C:\Program Files\HP\LoadRunner\bin\sed -f web to java.sed D:\web.txt > D:\java.txt
3、生成一个txt文件里面是java协议的脚本;结合java基础写邮件
Loadrunner C
loadrunenr 测试机内存泄露解决
http://dl2.iteye.com/upload/attachment/0103/4819/4660f773-44b3-300a-af15-d682a6830e6b.png
http://dl2.iteye.com/upload/attachment/0103/4821/478d0525-d51e-367b-9811-ad7678105d12.png
loadrunner测试机内存泄露原始脚本.zip
http://dl.iteye.com/topics/download/a439142b-e7bf-393c-b397-6bf26c7d12f3
loadrunner测试机内存泄露修改后脚本
D:\TestCase\20141121_b2c_search_click\tc_ad_cpc_searchclick_201409191101\tc_ad_cpc_searchclick_201409191101.usr
dd
Action() { int num; char *temp; // 此处多余删除,压测时导致测试机内存泄露, char str[300]; web_reg_find("Fail=NotFound", "Search=Body", "SaveCount=aa", "Text=jsonpCallback", LAST); web_set_max_html_param_len("1024"); //保存长字符串为关联使用 web_reg_save_param_ex( "ParamName=goods", //抓到搜索页面里商品URL "LB=\"apsClickUrl\":\"", "RB=\",\"cmdPrice\"", "Ordinal=all", "NotFound=warning", // 商品搜索允许搜索不到数据 SEARCH_FILTERS, LAST); lr_start_transaction("tran_Search"); web_url("cpc_data.html", "URL=http://apscorepre.cns*****.com/getCpcDatas?keyword={keyword}&positionID=100000001&inputCpcNumbers=13&inputTime=20141111", //"URL=http://apscorepre.cns*****.com/getCpcDatas?keyword={keyword}&positionID=100000001&inputCpcNumbers=13", "TargetFrame=", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t8.inf", "Mode=HTML", EXTRARES, LAST); lr_end_transaction("tran_Search", LR_AUTO); //搜索50次点击1次 if(atoi(lr_eval_string("{goods_count}"))!= 0){ //countHaveGoods++; num = rand()%50 + 1; // 得到1-50的随机值 if(num == 1){ //当随机到1时进行下面的点击操作业务 //countClick++; temp=lr_paramarr_random("goods"); //此处多余删除,压测时导致测试机内存泄露 lr_save_string(temp,"str"); //此处多余删除,压测时导致测试机内存泄露 lr_save_string(lr_paramarr_random("goods"),"str"); lr_start_transaction("click"); web_url("cpc_data.html", "URL={str}", //抓到搜索页面里商品URL,然后点击 "TargetFrame=xxxx", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t8.inf", "Mode=HTML", EXTRARES, LAST); lr_end_transaction("click", LR_AUTO); } } //lr_user_data_point("countClick/countHaveGoods",countClick*1.0/countHaveGoods); //lr_user_data_point("countClick",countClick); return 0; }
dd
从一个脚本谈loadrunner的脚本初始化
http://www.blogjava.net/qileilove/archive/2014/02/20/410079.html
昨天一个同事请我一个问题,在下列代码中如何将 InputStream is 这个元素只初始化一次呢?
/* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import com.google.common.io.ByteStreams; import com.jd.jfs.JingdongFileSystem; public class Actions { File file = new File("C:/8K.file"); InputStream is =null; // 返回一个byte数组<pre code_snippet_id="145362" snippet_file_name="blog_20140107_2_8044261" name="code" class="java"> byte[] fileBytes = new byte[(int) file.length()]; // 创建一个数据来保存文件数据 JingdongFileSystem jfs =new JingdongFileSystem(); public int init() throws Throwable { is = new FileInputStream(file); ByteStreams.readFully(is, fileBytes); is.close(); //jfs = new JingdongFileSystem(); return 0; } //end of init public int action() throws Throwable { try { lr.start_transaction("jfs-w"); String key = jfs.writeBytes(fileBytes); //上传 System.out.println(key); } catch (Exception e) { e.printStackTrace(); } lr.end_transaction("jfs-w", lr.AUTO); return 0; }//end of action public int end() throws Throwable { return 0; }//end of end }
d
我们知道,在loadrunner的java_vuser协议的脚本中,init方法在每个vuer初始化的时候都会被执行一次,换句话说N个用户就会被执行N次,所以上面的脚本中inputStream对象会被初始化N次。我随即做了如下修改
File file = new File("C:/8K.file"); static InputStream is =null; // 返回一个byte数组 <span style="color: #ff0000; "> </span> byte[] fileBytes = new byte[(int) file.length()]; // 创建一个数据来保存文件数据 JingdongFileSystem jfs =new JingdongFileSystem(); public int init() throws Throwable { if(is==null){ is = new FileInputStream(file); } ByteStreams.readFully(is, fileBytes); is.close(); //jfs = new JingdongFileSystem(); //初始化 return 0; }//end of init 理论上来说,上述代码实现了单例模式。但是这个脚本并发下无效。。。 经过和开发探讨最终换了以下的代码来处理: static { File file = new File("C:/8K.file"); fileBytes = new byte[(int) file.length()]; // 创建一个数据来保存文件数据 try { InputStream is = new FileInputStream(file); ByteStreams.readFully(is, fileBytes); is.close(); } catch (Exception e) { e.printStackTrace(); } jfs = new JingdongFileSystem(); }静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量,即static修饰的数据成员. 总结一下: 在java_vuser协议的脚本中: 1. vuser_init模块始终不会被执行; 2. init方法会被初始化合并发数相同的次数 3. 如果想实现多个并发用户公用一个变量,请使用静态初始化块。
gexiaolei 185-51758325
md5:f3913639454e6362a0d6813c33295ce1
使用loadrunner Java Vuser协议进行性能测试时场景中报Error: Compilation process failed.解决方法
http://blog.csdn.net/aovenus/article/details/9963461
使用loadrunner Java Vuser协议进行性能测试时场景中报Error: Compilation process failed.解决方法
【问题背景】:最近使用loadrunner进行接口性能测试,接口均使用java编写的,本次测试使用java vuser协议进行脚本编写,并通过调用jar包,进行接口应用调用。在性能测试过程中,使用两台负载机,均已配置java环境变量,但是在场景执行时,报Error: Compilation process failed错误。
【解决方法】:通过网上搜索,有遇到该问题的同学,提供的解决方法是:在loadrunner安装目录classes下放入接口调用需要使用到的jar包,通过尝试该方法发现不能解决问题。
最后通过在场景中,设置RunTime-Settings—>Java Enviroment Settings—>Classpath中引入脚本需要调用的jar包,即解决。
end
相关推荐
内容概要:本文详细介绍了信捷PLC在多个应用场景中的具体实现,包括随机密码生成、动态验证码、动态分期付款功能及锁机例程。首先探讨了随机密码生成,通过PLC的随机数生成功能并结合数学运算,实现了4位随机密码。其次,讲解了动态验证码的实现,利用PLC的实时时钟和通信功能,使验证码随时间动态变化。再次,介绍了动态分期付款功能,通过监测支付信号和比较已支付金额与总金额,实现分期付款的控制。最后,讨论了锁机例程,通过状态继电器和时间窗控制,确保设备在特定条件下不被随意使用。每个部分都提供了详细的梯形图代码和注释,帮助读者理解和实现。 适合人群:对PLC编程有一定基础的技术人员,尤其是从事工业自动化领域的工程师。 使用场景及目标:适用于需要增强设备安全性、提高验证机制可靠性的工业控制系统。通过学习这些例程,工程师可以在实际项目中灵活运用PLC实现复杂的功能,如设备访问控制、支付管理等。 其他说明:文中不仅提供了具体的代码实现,还分享了一些实用技巧和注意事项,如密码比对策略、时间同步校验、多品牌PLC移植建议等。此外,还提到了一些防破解措施,增强了系统的安全性。
213000-fbo-ggs-Linux-x64-Oracle-shiphome.zip ogg21.3安装包,适用于经典架构
内容概要:本文介绍了基于Stanley算法和预瞄距离自适应机制的CarSim与Simulink联合仿真模型。Stanley算法用于路径跟踪,通过计算横向和航向偏差调整车辆转向角;预瞄距离自适应机制根据车辆速度动态调整预瞄距离,确保在不同速度和路况下都能灵活应对。CarSim提供高精度车辆动力学模型,Simulink则负责算法实现和系统集成。文中还分享了多个实用技巧,如速度单位转换、PID控制器参数调整、数据同步问题解决等,并提供了完整的模型文件供下载。 适合人群:从事自动驾驶研究的技术人员、高校师生及相关领域的研究人员。 使用场景及目标:适用于自动驾驶路径跟踪的研究与开发,旨在提高车辆在不同速度和路况下的路径跟踪性能,减少横向误差,增强行驶稳定性。 其他说明:文中提到的模型文件包括Carsim参数配置文件cpar、Simulink模型文件及详细参考资料,有助于快速搭建并调试联合仿真环境。
内容概要:本文详细介绍了西门子S7-1200 PLC在污水处理项目中的应用,涵盖多个关键技术模块。首先讨论了模拟量转换,通过具体的代码示例展示了如何将模拟量信号转换为可用于控制的数值。接下来探讨了电动阀控制,解释了如何利用逻辑指令实现电动阀的开关控制。液位控制部分则通过比较指令实现了液位的精准调控。Modbus通讯部分讲解了如何通过Modbus协议控制变频器,包括通讯参数的配置和数据传输的具体实现。PID控制部分详细解析了PID控制器的参数设置及其在污水处理中的应用。最后,PUT与 GET指令的应用确保了主站与从站之间的数据同步。此外,文中还分享了一些实战经验和调试技巧,如模拟量处理的基本方法、Modbus通讯的注意事项以及PID控制的实际应用。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程和污水处理控制系统感兴趣的读者。 使用场景及目标:①帮助工程师理解和掌握西门子S7-1200 PLC在污水处理项目中的具体应用;②提供详细的代码示例和实战经验,便于读者快速上手并应用于实际项目;③解决常见问题,提高系统的稳定性和可靠性。 其他说明:文中不仅涵盖了理论知识,还包括大量的实战经验和调试技巧,有助于读者更好地应对实际项目中的挑战。
【A股温度计】www.agwdj.com 镜像版程序V1.0说明 •通过数据可视化技术,将复杂的A股市场数据转化为直观的图形界面,帮助投资者快速把握市场脉搏。 【核心功能】 •全景视角:突破信息碎片化局限,快速定位涨跌分布,一眼锁定今日热点板块 •板块排序:基于申万行业分类标准,对31个一级行业和131个二级行业实时动态排序 •硬件适配:智能适配不同分辨率屏幕,4K以上屏幕显示信息更多(视觉更佳) •智能缩放:A股全图让大A市场5000+个股同屏显示(支持鼠标滚轮及触摸设备5级缩放) 【三秒原则】 •三秒看懂:通过精心设计的视觉图形,让用户在三秒内看清市场整体状况 •三秒定位:智能算法让大成交额个股和热点板块自动靠前,快速定位机会 •三秒操作:极简的界面,让用户减少操作 【使用场景】 •盘前准备:快速了解隔夜市场变化,制定当日策略 •盘中监控:实时跟踪市场动向,及时把握当日机会 •盘后复盘:全面分析当日市场表现,总结经验教训 【适合人群】 •个人用户:快速了解市场整体趋势变化,辅助决策 •专业人员:获取每天市场的数据云图支持研究工作 •金融机构:作为投研系统的可视化补充组件 •财经媒体:制作专业市场分析图表和报道 【市场切换】 •默认加载"A股全图",可切换单独显示的类型如下: •上证A股/深证A股/北证A股/创业板/科创板/ST板块/可转债/ETF 【程序优势】 •运行环境:纯PHP运行(无需安装任何数据库) •数据更新:实时同步→A股温度计→www.agwdj.com •显示优化:自动适配8K/4K/2K/1080P等不同分辨率的屏幕 •设备兼容:对市面上主流的设备及浏览器做了适配(检测到手机/平板/电视等默认Chrome/Firefox/Edge内核过低的情况会自动提示) 【其他说明】 •A股温度计程序演示网址:https://www.agwdj.com
汽车车载网络系统检修.ppt
KUKA机器人相关文档
内容概要:本文详细介绍了利用Matlab实现模拟退火算法来优化旅行商问题(TSP)。首先阐述了TSP的基本概念及其在路径规划、物流配送等领域的重要性和挑战。接着深入讲解了模拟退火算法的工作原理,包括高温状态下随机探索、逐步降温过程中选择较优解或以一定概率接受较差解的过程。随后展示了具体的Matlab代码实现步骤,涵盖城市坐标的定义、路径长度的计算方法、模拟退火主循环的设计等方面。并通过多个实例演示了不同参数配置下的优化效果,强调了参数调优的重要性。最后讨论了该算法的实际应用场景,如物流配送路线优化,并提供了实用技巧和注意事项。 适合人群:对路径规划、物流配送优化感兴趣的科研人员、工程师及高校学生。 使用场景及目标:适用于需要解决复杂路径规划问题的场合,特别是涉及多个节点间最优路径选择的情况。通过本算法可以有效地减少路径长度,提高配送效率,降低成本。 其他说明:文中不仅给出了完整的Matlab代码,还包括了一些优化建议和技术细节,帮助读者更好地理解和应用这一算法。此外,还提到了一些常见的陷阱和解决方案,有助于初学者避开常见错误。
内容概要:本文详细介绍了BYVIN(比德文)电动四轮车控制器的技术细节,涵盖了硬件设计和软件实现两大部分。硬件方面,提供了PCB文件和PDF原理图,展示了电路板布局、元件位置及电路连接关系。软件方面,代码结构清晰,模块化设计良好,包括初始化、速度数据处理、PWM配置、故障保护机制等功能模块。文中还提到了一些独特的设计细节,如PWM死区补偿、故障分级处理、卡尔曼滤波估算电池电量等。此外,代码仓库中还包括了详细的注释和调试技巧,如CAN总线实时数据传输、硬件级关断+软件状态机联动等。 适合人群:具备一定嵌入式开发基础的研发人员,尤其是对STM32F4系列单片机和电动车辆控制系统感兴趣的工程师。 使用场景及目标:适用于希望深入了解电动四轮车控制器设计原理和技术实现的研究人员和开发者。目标是掌握电动四轮车控制器的硬件设计方法和软件编程技巧,提升实际项目开发能力。 其他说明:本文不仅提供了代码和技术细节,还分享了许多实战经验和设计思路,有助于读者更好地理解和应用这些技术。
内容概要:本文介绍了一个专业的剧本杀创作作家AI。它能根据客户需求创作各种风格和难度的剧本杀剧本,并提供创作建议和修改意见。其目标是创造引人入胜、逻辑严密的剧本体验。它的工作流程包括接收理解剧本要求、创作剧本框架情节、设计角色背景线索任务剧情走向、提供修改完善建议、确保剧本可玩性和故事连贯性。它需保证剧本原创、符合道德法律标准并在规定时间内完成创作。它具备剧本创作技巧、角色构建理解、线索悬念编织、文学知识和创意思维、不同文化背景下剧本风格掌握以及剧本杀游戏机制和玩家心理熟悉等技能。; 适合人群:有剧本杀创作需求的人群,如剧本杀爱好者、创作者等。; 使用场景及目标:①为用户提供符合要求的剧本杀剧本创作服务;②帮助用户完善剧本杀剧本,提高剧本质量。; 阅读建议:此资源详细介绍了剧本杀创作作家AI的功能和服务流程,用户可以依据自身需求与该AI合作,明确表达自己的创作需求并配合其工作流程。
内容概要:本文详细介绍了五个用于空气耦合超声仿真的COMSOL模型,涵盖二维和三维场景,适用于铝板和钢板的多种缺陷检测。每个模型都包含了具体的参数设置、边界条件选择以及优化技巧。例如,Lamb波检测模型展示了如何利用A0模态检测铝板内的气泡,而三维模型则强调了内存管理和入射角参数化扫描的重要性。表面波检测模型提供了裂纹识别的相关性分析方法,变厚度模型则展示了如何通过几何参数化来模拟复杂的工件形态。文中还分享了许多实用的操作技巧,如内存优化、信号处理和自动化检测逻辑。 适用人群:从事无损检测研究的技术人员、COMSOL软件使用者、超声检测领域的研究人员。 使用场景及目标:①帮助用户理解和掌握空气耦合超声仿真的具体实现方法;②提供实际工程应用中的缺陷检测解决方案;③指导用户进行高效的仿真建模和结果分析。 其他说明:文中提供的模型不仅涵盖了常见的缺陷检测场景,还包括了一些高级技巧,如参数化扫描、自动化检测逻辑等,能够显著提高工作效率。同时,文中还给出了硬件配置建议和一些常见的注意事项,确保用户可以顺利运行这些模型。
内容概要:本文档介绍了名为“精通各种销售文案的专家”的虚拟角色,该角色由深度学习和自然语言处理技术构建,旨在为各行业提供专业的销售文案服务。文档详细列出了角色的背景、偏好、目标、限制条件以及技能。它强调了角色在文案创意撰写、精准市场定位、效果优化和培训指导方面的能力,并且提到它能够根据不同的产品特性创作多元化的文案风格,同时确保文案符合法律规范、品牌形象一致性和时效性。此外,还展示了具体的文案示例,如智能手表和空气净化器的广告语,最后概述了与用户合作的标准流程,包括初步沟通、文案构思、初稿撰写及反馈修订等步骤。; 适合人群:需要撰写或优化销售文案的企业营销人员、广告策划师以及想要提高文案写作水平的内容创作者。; 使用场景及目标:①为企业或个人提供定制化销售文案服务,以提升品牌影响力和销售业绩;②帮助文案撰写者掌握文案策划技巧,提高文案质量;③确保文案符合法律法规和品牌要求,维护品牌形象。; 阅读建议:阅读时应重点关注角色的核心能力和所提供的具体服务,同时注意文档中提及的文案创作原则和流程,以便更好地理解如何利用该角色来满足自身的文案需求。
KUKA机器人相关文档
内容概要:本文详细探讨了多智能体系统中神经网络与自适应动态滑模控制的应用及其在Simulink中的复现。首先介绍了多智能体系统的概念及其通信方式,然后讨论了神经网络在多智能体决策中的应用,展示了如何使用Keras构建前馈神经网络。接着阐述了自适应动态滑模控制的基本原理,包括滑模面设计和自适应控制参数调整。最后,重点讲解了如何在Simulink中集成这些技术,提供了具体的实现步骤和优化建议,如使用Matlab Function模块嵌入神经网络和自适应滑模控制算法,以及解决抖振问题的方法。 适合人群:从事智能控制系统研究和开发的技术人员,尤其是对多智能体系统、神经网络和自适应动态滑模控制感兴趣的科研人员和工程师。 使用场景及目标:适用于需要提高多智能体系统在复杂环境下稳定性和效率的研究项目。具体目标包括减少控制系统的抖振现象,提升响应速度和精度,降低计算资源消耗。 其他说明:文中提供的代码片段和实现细节有助于读者快速理解和应用这些先进技术。同时,强调了在实际工程中需要注意的问题,如采样时间和代数环检测等。
内容概要:本文详细探讨了永磁同步电机(PMSM)无传感器控制领域的改进卡尔曼滤波速度观测器的应用。首先介绍了卡尔曼滤波的基本原理及其在PMSM速度观测中的应用,指出了传统卡尔曼滤波在复杂非线性系统中的局限性。接着阐述了改进卡尔曼滤波的具体方法,包括自适应调整过程噪声协方差矩阵Q和观测噪声协方差矩阵R,以应对PMSM运行时参数变化的情况。文中还展示了如何在Simulink中构建PMSM的数学模型并实现普通和改进卡尔曼滤波的子模块,通过仿真对比验证了改进算法的有效性和优越性。此外,讨论了改进版在不同工况下的表现,尤其是在高速区和负载突变情况下的精度提升。 适合人群:从事电机控制系统研究与开发的技术人员,尤其是对卡尔曼滤波有一定了解并希望深入了解其在PMSM无传感器控制中应用的人群。 使用场景及目标:适用于需要提高PMSM无传感器控制精度的研发项目,目标是通过改进卡尔曼滤波算法,实现更精准的速度和位置估计,降低系统成本并提高可靠性。 其他说明:文章强调了改进卡尔曼滤波在实际应用中的细节处理,如自适应调整噪声协方差矩阵、优化矩阵运算等,为后续研究提供了宝贵的实践经验和技术指导。
游戏型多媒体教育软件.ppt
KUKA机器人相关文档
内容概要:本文深入探讨了三相模块化多电平变换器(MMC)整流器的控制策略及其MATLAB实现。首先介绍了双闭环控制机制,包括电流外环和电压内环的作用及其Python代码示例。接着详细讲解了桥臂电压均衡控制、模块电压均衡控制以及环流抑制控制的具体方法和技术细节。此外,还讨论了载波移相调制的应用,展示了如何通过MATLAB生成移相载波信号。文中提供了大量MATLAB代码片段,帮助读者更好地理解和实现这些控制策略。 适合人群:从事电力电子领域的研究人员、工程师以及相关专业的学生。 使用场景及目标:适用于需要深入了解MMC整流器控制策略的研究和开发项目。目标是掌握MMC整流器的工作原理、控制方法及其具体实现,从而应用于实际工程项目中。 其他说明:文章强调了实际工程应用中的注意事项,如调参技巧、波形质量优化等,并提醒读者仿真结果与实际情况可能存在差异,需预留一定的调节空间。
内容概要:本文详细介绍了基于西门子S7-200SMART PLC和ABB变频器的一拖二恒压供水系统的具体实现方法和技术要点。主要内容涵盖RS485通讯配置、PID调节、PLC程序逻辑(如压力判断、倒泵触发)、变频器参数设置以及HMI界面设计等方面。文中不仅提供了详细的代码片段,还分享了许多实际调试中的经验和常见问题解决方案,如通讯配置、定时切换策略、压力波动处理等。 适合人群:从事自动化控制系统设计、安装和维护的技术人员,尤其是对PLC编程和变频器应用有一定基础的工程师。 使用场景及目标:适用于工业现场的恒压供水系统设计与实施,旨在提高系统的稳定性和可靠性,减少设备磨损,确保供水压力的精确控制。通过学习本文,读者能够掌握PLC与变频器协同工作的关键技术,提升实际项目中的问题解决能力。 其他说明:文章强调了在实际项目中应注意的细节,如通讯配置、参数调整、硬件连接等,并提供了一些实用的小技巧,帮助读者更好地理解和应用相关技术。