shinetony 发表于 2012-3-31 16:33:07

急,请教Loadrunner 截取字符串的函数~~~谢谢了~~~

比如一段字符串
.....HECKRESULT><ORDERID><!]></ORDERID></CTagSe....
我需要截取<ORDERID>。。。</ORDERID>之间的这段字符串(orderid在整个字符串中只出现一次) 有什么LR自带的函数能实现啊

PS:应为出现在整个字符串中的位置不固定,所以用类似取整个字符串第N位到第M位的函数无法实现

mimmy 发表于 2012-3-31 18:19:37

看你的字符串貌似xml格式吧,看下LR帮助的lr_xml_get_values函数

云层 发表于 2012-3-31 22:36:51

如果是服务器返回,直接写个关联不就得了

夏日摸摸茶 发表于 2012-4-1 09:54:02

同意云总

shinetony 发表于 2012-4-1 10:25:08

回复 2# mimmy


    因为返报文里包含 <!] 将参数括起来了,导致lr_xml_get_values函数获取不了

shinetony 发表于 2012-4-1 10:29:10

回复 3# 云层


    我一个action里面需要放2个报文,第二个报文的入参是第一个报文的出参(也就是刚说的那个报文返回的orderid),这种情况使用关联函数可以么?

shinetony 发表于 2012-4-1 23:44:38

自己顶一顶

云层 发表于 2012-4-2 09:33:54

按照现在看到的情况直接关联就行了,如果你是字符串,你可以找Fin写过的一个对字符串做关联的代码

salent 发表于 2012-4-2 10:26:10

用sscanf函数可以,sscanf(str,"%[^<ORDERID>]%[^</ORDERID>]",aa)

云层 发表于 2012-4-2 10:57:13

楼上这个函数蛮无敌的,以前没注意过,多谢了

shinetony 发表于 2012-4-2 11:37:41

回复 9# salent


    感谢先!
看了帮助文档,例子如下:
Action() {

   char sentence[] = "After 7 years' siege yet Troy walls stand";
   char s1, s2;
   int num_of_years;

   sscanf(sentence,"%s %d %s", s1, &num_of_years, s2);
   lr_output_message("Number of years=%d s2=\"%s\"", num_of_years, s2);

   return 0;
}

Output:
Action.c(7): Number of years=7 s2="years'"

有个地方不明白 :   sscanf(sentence,"%s %d %s", s1, &num_of_years, s2);
我去掉&num_of_years前面的& 之后就报错:

Action.c(7): Error: C interpreter run time error: Action.c (7):Error -- memory violation : Exception ACCESS_VIOLATION received.

请问这是什么问题?

newhackerman 发表于 2012-4-6 15:21:09

&:取地址符,没有&取不到地址,内存读取错误.
函数原型"
int sscanf( const char *buffer, const char *format_string, args );
参数1,参数2都是指针,必须用&取地址

irisfly89 发表于 2012-4-11 17:16:15

lrs_save_searched_string("socket0",NULL,"session1","LB/BIN=<ORDERID>":","RB/BIN=</ORDERID>",1,0,-1);

niunjxtest 发表于 2012-4-11 17:21:43

。。

meqili 发表于 2012-8-2 11:05:55

回复 3# 云层

嘻嘻看了您那本心出的书很长知识哦请多多指教。。。

meqili 发表于 2012-8-2 11:07:30

回复 9# salent

这个函数在java中不能使用么?在api中没找到java语法的呢咋
页: [1]
查看完整版本: 急,请教Loadrunner 截取字符串的函数~~~谢谢了~~~