导航:首页 > 源码编译 > 为什么同样的脚本编译不能通过

为什么同样的脚本编译不能通过

发布时间:2025-08-09 02:18:21

Ⅰ LoadRunner登录脚本认证失败的原因及解决方法

测试对象:某Web即时通讯系统(以下称WebIM)
开发语言:XML
数据通讯协议:Web(HTTP/HTML)协议、Windows Sockets协议
底层数据库:Mysql
服务器操作系统:Redhad 4
脚本实现功能:登入系统后,再退出系统。
问题1:录制开发的脚本可以成功回放,但是数据库的logout表里却查不到“登出”的用户?
分析:录制的时候只选用了单协议:Web(HTTP/HTML)协议,而WebIM的实现不只用到了Web(HTTP/HTML)协议,也用到了 Windows Sockets协议。在定位了问题的"原因"之后,笔者尝试录制多协议的脚本,结果回放失败。回放失败是因为Webim在登录的过程中有个加密验证的过程。脚本回放时提交了上一次的经过Sha1加密后的密文,而此时服务器端的Sha1密文已经发生了改变。从而导致了失败。
解决方法:
a、使用双协议录制脚本
b、开发Sha1算法的DLL文件并在脚本中调用。
问题2:录制的脚本中并没有捕获到服务器返回的Session ID?
分析和方案:Webim的开发用到了XML和Windows Sockets协议,因此按照正常的思路,Loadrunner在录制脚本时,也应该采用XML和Windows Sockets协议,但实际情况是这样的,录制的脚本中并没有捕获到服务器返回的Session ID。既然公司内网的Jabberd服务器有专门的测试客户端,笔者决定通过这个客户端录制脚本,由于这个客户端和服务器的通信协议是Windows Sockets,因此录制协议也采用了这个最底层的协议。这一次,录制的脚本中捕获到了服务器返回的Session ID。为了保证脚本回放时能够动态的获取到这个Session ID,需要做“关联”操作,笔者使用了lrs_save_searched_string()函数,对脚本做了处理。
问题3:如何调用Dll来对服务器返回的序列和Password加密,以产生Sha1的密文?
分析和方案:脚本中加载了Dll库文件后,在调用库文件中的加密函数对Session ID+Password字符序列加密时,必须采用如下格式endes(a,b),其中的a代表源序列,b代表密文。经过这样的步骤处理后,调试脚本,就可以看到密文了。
问题4:Buf中参数化密文后,脚本还是不能编译通过,存在语法错误?
分析和方案:发现Loadrunner参数化,是按照它内置的机制执行的,符合这个机制,编译就能通过。
后来在Gen中的Tools—general option中找到了可以更改这个机制的地方,修改完了之后,脚本再次编译,这次OK了。
问题5:错误提示:没有足够的虚拟用户分配给这个NewPara?
分析和方案:loadrunner中在对用户名和密码或其他数据参数化了以后,不要将参数删除后,重新参数化,否则就会出现上述问题。笔者决定重新录制脚本,重新参数化,重新修改脚本。事实证明这样做是正确的,编译运行后,5个虚拟用户的脚本正确无误的通过。

Ⅱ 【安卓实践】apex导致的安卓编译失败原因调查

在实现功能的时候,我把我的功能逻辑实现在libmeminfo.so库当中。
由于我的功能需要调用libmemtrack.so库中的一些函数,我就在libmeminfo的androidbp中将libmemtrack.so动态连接过来了。如下:

这样增加之后无论是在 其他so库中调用我提供的方法,还是单独编译libmeminfo都可以编译通过,并且功能验证不会有问题。
但是当我带patch编译整个rom包的时候,却报了以下错误:

拿到这个错误的时候,由于这个错误最多是“Unexpected file 'lib64/libmemtrack.so'”这一行与我的修改有关系,
所以我一度觉得不是我的问题。后来调查了两个小时我才发现编译错误的原因。

确实我的修改不会导致问题,但是在安卓编译的过程中编译com.android.runtime.debug时,编译脚本会检查/apex/com.android.runtime.debug/目录下多个目录lib/lib64/bin/以及lib/bionic等路径下是否包含非法的so库。
如果包含非法的so库,就会在编译脚本中报错,导致rom包的编译失败。

修改编译脚本,执行“make art-check-debug-apex-gen -j16”打印expected_paths如下:

可以看到libmeminfo.so包含在这些库当中。
这意味着,如果我在libmeminfo.so中想要动态连接其他非expected_paths中的so库,如libmemtrack,就会在编译的时候把libmemtrack放在apex/com.anroid.runtime.debug/lib64/路径下。
而编译脚本会检查此路径下的库是否都是expected_paths中所包含的库,如果不是,就会报错。
而这次报错中之所以会有其他库如libhwbinder.so,原因是libmemtrack动态连接了这些库。
至此,问题原因调查完毕。
那只能换一种方式实现我的功能了,至少不能放在libmeminfo.so中去实现。

Ⅲ Aut2exe编译AU3脚本时不能用,提示不能读取autoit根(stub)文件,AUTOITSC.BIN

如果不是au3程序或缺少程序中要包含的文件问题试着勾选ansi编码,直接上图看

Ⅳ 代码有点问题,运行脚本是提示编译器错误怎么回事

在执行脚本过程中遇到编译器错误,首先需要检查你使用的脚本文件是否正确。请将以下示例中的文件替换成你自己的脚本,例如“C:WINDOWSsystem32smss.exe:527176172.vbs”。


具体操作步骤如下:首先打开“开始”菜单,点击“运行”,输入“regedit”,然后确定。接着按Ctrl+F,在弹出的查找对话框中输入“C:WINDOWSsystem32smss.exe:2075451338.vbs”,点击查找。如果找到相关条目,可以尝试删除。如果删除不成功,可以考虑使用autoruns工具来清理。下载该工具后解压并打开,选择“系统全部启动项”,点击“全部标签”,找到加载时出错的项“C:WINDOWSsystem32smss.exe:2075451338.vbs”。右键选择删除,重启电脑后该问题应该会消失。


如果你依然遇到问题,可能需要检查脚本文件的路径或文件名是否正确。确保脚本文件存在于指定路径,并且文件名没有错误。此外,还需确认脚本文件的编码是否正确,有时不同编码的文件可能会导致编译器错误。


如果以上方法都无法解决问题,建议检查脚本文件的内容是否有语法错误。可以尝试将脚本文件的内容复制到一个新的文本编辑器中,逐行检查语法错误。另外,确保你的编译器或解释器版本与脚本兼容,有时版本不匹配也会导致编译器错误。


最后,可以尝试重新安装你的编译器或解释器,确保安装过程没有遗漏。安装时仔细阅读安装向导,确保所有步骤都正确完成。


如果问题仍然存在,建议查阅相关文档或在线论坛寻求帮助,提供详细的错误信息有助于更快地解决问题。


下载地址:点击这里

阅读全文

与为什么同样的脚本编译不能通过相关的资料

热点内容
安卓手表和苹果手机怎么连接 浏览:431
cdr阵列命令 浏览:493
麼百和机顶盒服务器地址如何知道 浏览:297
面试可以用自己的编译器吗 浏览:750
宏命令语言 浏览:563
程序员陆离穿正装参加 浏览:614
pdf阅读器目录 浏览:129
svn终端命令 浏览:124
云硬盘想必用过云服务器的都会有 浏览:353
蓝牙未加密怎么看 浏览:299
租用服务器怎么避免上当 浏览:82
东华大学万燕编译原理四元式 浏览:835
天行九歌焰灵姬ph解压码 浏览:433
能在手机上使用的c语言编译器 浏览:927
ps解压在哪里 浏览:166
有个木头人的解压游戏叫什么 浏览:32
jit的实现编译 浏览:690
isd4004单片机 浏览:540
文件夹很调皮哦 浏览:9
如何设置代理服务器看视频 浏览:38