51Testing软件测试论坛

标题: 求救:loadrunner中如何调用C语言标准库函数?标题要长!!! [打印本页]

作者: canicanliu    时间: 2013-1-14 13:49
标题: 求救:loadrunner中如何调用C语言标准库函数?标题要长!!!
本人是新手,现在要用loadrunner来编写的脚本中需要用到一些C语言标准函数,如:余弦函数COS,正切、余切函数tan,atan,log()函数等等等!本人弄了很久了,奈何水平有限,望有贤达能指点一二,则感激之情不胜言表!(PS:正弦函数sin(),sqrt(),abs()等函数在LR上可以直接使用,但是其他去无法使用。)
作者: canicanliu    时间: 2013-1-14 13:50
因为事情比较急,在线等!
作者: canicanliu    时间: 2013-1-14 13:51
希望有热心人帮助下!谢谢了!
作者: canicanliu    时间: 2013-1-14 13:57
可有高手愿意赐教一二?
作者: canicanliu    时间: 2013-1-14 14:07
不要沉了啊!!!高手不要藏了!!!出来吧!救人于水火啊!
作者: canicanliu    时间: 2013-1-14 14:10
大神们,该出手时就出手!不要再忍了!!
作者: canicanliu    时间: 2013-1-14 14:13
不要沉了啊!!人工置顶!有没有版主的,我应该向谁去请教呢?
作者: canicanliu    时间: 2013-1-14 14:57
为何没有人愿意回答呢?做不出来我就没有办法毕业了……
作者: 云层    时间: 2013-1-14 15:36
标准库支持,部分非标准库不支持,你可以在代码中Include载入你要的库,我记得我写过
作者: canicanliu    时间: 2013-1-14 16:21
回复 9# 云层


  先谢谢你!
 标准库的函数是所有的都支持吗?还是部分支持?
作者: canicanliu    时间: 2013-1-14 16:36
回复 9# 云层


    好的,谢谢您!我研究下试试看!
作者: 零测试    时间: 2013-1-15 09:50
不能根据数学定理
正弦/余弦=正切
来写个东东嘛
作者: canicanliu    时间: 2013-1-15 11:57
回复 12# 零测试


    这个我知道啊。现在sin,cos都不提示出错了,但是算不出结果。不管输入什么角度,结果都是0,有人知道是怎么回事吗?log()函数还是没有……
作者: canicanliu    时间: 2013-1-15 11:58
回复 9# 云层


    现在sin,cos都不提示出错了,但是算不出结果。不管输入什么角度,结果都是0,有人知道是怎么回事吗?log()函数还是没有……
作者: canicanliu    时间: 2013-1-15 13:52
sin(),cos()等函数不提示错误了,但是无法计算结果,不管多少输出都是0!谁遇到过这种问题?
作者: canicanliu    时间: 2013-1-15 17:42
sin(),cos()等函数不提示错误了,但是无法计算结果,不管多少输出都是0!谁遇到过这种问题?
作者: canicanliu    时间: 2013-1-15 19:21
sin(),cos()等函数不提示错误了,但是无法计算结果,不管多少输出都是0!谁遇到过这种问题?
作者: 云层    时间: 2013-1-16 08:49
你确定你用的变量类型是double?
作者: canicanliu    时间: 2013-1-16 11:11
回复 18# 云层


    完全没有错。脚本如下:
 Action()
{
        double latitude=48.0;
        double lat_rad=(latitude/180)*3.14159;
        double sinn=sin(lat_rad);
        lr_message("latitude is :%f",latitude);
        lr_message("lat_rad is :%f",lat_rad);
        lr_message("sin(lat_rad) is :%f",sinn);
        return 0;
}
运行结果如下:
Starting iteration 1.
Starting action Action.
latitude is :48.000000
lat_rad is :0.837757
sin(lat_rad) is :1926825264.000000
Ending action Action.
Ending iteration 1.

本人新手,希望云前辈及其他高手解惑!谢谢!
作者: 云层    时间: 2013-1-16 12:02
其实我纳闷的是你干嘛非要用LR做这个事情,这个值既然你可以先算出来你就固定用这个值就行了。。何必非要在代码里面动态计算呢。。
作者: canicanliu    时间: 2013-1-16 12:23
回复 20# 云层


    因为这个数目巨大,以千万计。且每条数据之间有关系,颇为复杂。全部算出来不合适。但是临时算出来,去很简单地操作。难道LR的数学函数就没有人用过吗?那大家用LR都怎么用呢?
作者: canicanliu    时间: 2013-1-16 13:13
回复 20# 云层


    因为数据量很大以千万计,且关系复杂,不可能事先计算好。需要临时计算。
作者: canicanliu    时间: 2013-1-16 17:57
回复 20# 云层


    因为数据太大啊!以千万计,难道就没有人用过里面的函数吗?大家用LR都怎么用的啊?
作者: canicanliu    时间: 2013-1-16 17:57
回复 20# 云层


    因为数据量大啊。
作者: canicanliu    时间: 2013-1-16 17:58
回复 20# 云层


    数据量大。
作者: canicanliu    时间: 2013-1-16 19:26
回复 20# 云层


    数据量太多了。
作者: canicanliu    时间: 2013-1-16 21:35
回LS,数据太多了,以千万计,不可能一个一个算好来。且数据间有复杂的关系!求大神指导一二,实在没有折了。
作者: canicanliu    时间: 2013-1-17 08:51
这么大的论坛,竟无人相助吗?
作者: 云层    时间: 2013-1-17 09:23
看你这样一说我都不太想帮你解决了,给我一个C90规范的math.h文件先。。
作者: canicanliu    时间: 2013-1-17 10:51
回复 29# 云层


    内容太长了。发不了。
作者: canicanliu    时间: 2013-1-17 11:59
sin(x)结果不正确的已经解决!原因是需要在代码中事先声明一下:
声明前如下:
Action()
{
        double latitude=48.0;
        double lat_rad=(latitude/180)*3.14159;
        double sinn=sin(lat_rad);       
        lr_message("latitude is :%f",latitude);
        lr_message("lat_rad is :%f",lat_rad);
        lr_message("sin(lat_rad) is :%f",sinn);
        return 0;
}
这样是得不出正确结果的,应该如下:
Action()
{
        double sin(double x);
        double latitude=48.0;
        double lat_rad=(latitude/180)*3.14159;
        double sinn=sin(lat_rad);

       
        lr_message("latitude is :%f",latitude);
        lr_message("lat_rad is :%f",lat_rad);
        lr_message("sin(lat_rad) is :%f",sinn);
        return 0;
}
作者: canicanliu    时间: 2013-1-17 12:01
感谢云层和零测试及其他朋友的关注,谢谢!
作者: 云层    时间: 2013-1-17 12:30
解决了就好
作者: canicanliu    时间: 2013-1-17 12:32
回复 33# 云层


    嗯嗯。thx!
作者: 蚂蚁吞大象    时间: 2013-1-24 22:37
既然是C,可以Include库函数的嘛!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2