在测试时,我们可以根据文本检查点判断事务是否执行正确。

 

我们在启动流程时,成功返回:

 

我们检查这个响应结果是否有。

int i=0;

i=web_reg_find("Text=\":1,\"",
        "Search=Body",
        LAST);

web_submit_data("startFlow.ht",
        "Action=http://192.168.1.154:8080/bpmhac/platform/bpm/task/startFlow.ht",
        "Method=POST",
        "RecContentType=text/html",
        "Referer=http://192.168.1.154:8080/bpmhac/platform/bpm/task/startFlowForm.ht?defId=10000027300066",
        "Snapshot=t235.inf",
        "Mode=HTTP",
        ITEMDATA,
        "Name=actDefId", "Value=csqdxn:1:10000027300065", ENDITEM,
        "Name=defId", "Value=10000027300066", ENDITEM,
        "Name=businessKey", "Value=", ENDITEM,
        "Name=runId", "Value=0", ENDITEM,
        "Name=startNode", "Value=", ENDITEM,
        "Name=m:jdbcs:xm", "Value=a", ENDITEM,
        "Name=m:jdbcs:bianma", "Value=", ENDITEM,
        "Name=formKey", "Value=10000027300052", ENDITEM,
        "Name=formData", "Value={\"main\":{\"fields\":{\"xm\":\"a\",\"bianma\":\"\"}},\"sub\":[],\"opinion\":[]}", ENDITEM,
        LAST);

if(i==0){
lr_end_transaction("startFlow", LR_PASS);
}
else{
lr_end_transaction("startFlow", LR_FAIL);
}

这个代码根据响应判断事务是否成功。

 

在vuser_gen下这个执行是正确的。

但是在controller下并发执行,发现出现事务错误。

在服务端调试时并没有发现启动流程有报错记录。

 

在通过问老师,老师让我去打印一下相应的情况,看看日志结果。

代码改成如下:

使用关联,左右边界都为空。

打印响应的内容。

通过打印日志,发现:

Action.c(10): web_set_max_html_param_len was successful   [MsgId: MMSG-26392]
Action.c(19): Registering web_reg_save_param_ex was successful   [MsgId: MMSG-26390]
Action.c(28): Redirecting "http://192.168.1.154:8080/bpmhac/platform/bpm/task/startFlow.ht" (redirection depth is 0)   [MsgId: MMSG-26694]
Action.c(28): To location "http://192.168.1.154:8080/bpmhac/loginRedirect.ht"   [MsgId: MMSG-26693]
Action.c(28): Redirecting "http://192.168.1.154:8080/bpmhac/loginRedirect.ht" (redirection depth is 1)   [MsgId: MMSG-26694]
Action.c(28): To location "http://192.168.1.154:8080/bpmhac/loginRedirect.ht"   [MsgId: MMSG-26693]
Action.c(28): Redirecting "http://192.168.1.154:8080/bpmhac/loginRedirect.ht" (redirection depth is 2)   [MsgId: MMSG-26694]
Action.c(28): To location "http://192.168.1.154:8080/bpmhac/login.jsp"   [MsgId: MMSG-26693]
Action.c(28): web_submit_data("startFlow.ht") was successful, 3124 body bytes, 1072 header bytes   [MsgId: MMSG-26386]
Action.c(47): output:HTTP/1.1 302 Found
Server: Apache-Coyote/1.1
Cache-Control: no-cache
Pragma: no-cache
Expires: Wed, 31 Dec 1969 23:59:59 GMT
Location: http://192.168.1.154:8080/bpmhac/loginRedirect.ht
Content-Type: text/html;charset=UTF-8
Content-Length: 0
Date: Fri, 23 Jan 2015 09:24:47 GMT

 

发现启动流程时,发生了登录跳转。

 

结合服务器查看,终于找到问题的原因,因为在录制脚本是,都统一使用同一个用户进行登录,服务端有配置了单一用户登录。

意思就是同一个用户,一个时间点只能登录一次,去掉这个限制,再重新测试,结果终于正常了。

LoadRunner 文本检查点使用的更多相关文章

  1. loadrunner:文本检查点web_reg_find和web_find两个函数的区别

    web_reg_find是先注册(register)后查找的:使用时将它放在请求语句的前面. 而web_find是查找前面的请求结果:使用时将它放在请求语句的后面. 另二者的参数也完成不一样的,web ...

  2. loadrunner文本检查点

    将脚本切换回代码界面, 在光标闪烁的上行,添加如下的代码: 添加的代码根据你检查的方式不同而不同, 你可以选择其中之一即可. 代码一: web_reg_find("Text=Payment ...

  3. LoadRunner设置检查点的几种方法介绍

    前段时间在群里跟大家讨论一个关于性能测试的 问题,谈到如何评估测试结果,有一个朋友谈到规范问题,让我颇有感触,他说他们公司每次执行压力测试的时候,都要求脚本中必须有检查点存在,不然测试结果 将不被认可 ...

  4. 文本检查点web_reg_find和web_find两个函数的区别

    LR脚本实战:文本检查点web_reg_find和web_find两个函数的区别   web_reg_find是先注册(register)后查找的:使用时将它放在请求语句的前面. 而web_find是 ...

  5. LoadRunner之检查点

    一.什么是检查点 LoadRunner中检查点是用来判断脚本是否执行成功的.如果不加检查点,只要服务器返回的HTTP状态码是200,VuGen就认为脚本执行通过了.但是很多情况下服务器返回200并不代 ...

  6. Loadrunner 11检查点使用方法总结

    在使用Loadrunner 11进行性能测试中,有时需要对性能测试中的功能是否全部正确进行判断.这里就需要用到“检查点”,本文总结了常用三种协议下检查点的使用方法,希望阅读本文后的小伙伴们能够掌握其使 ...

  7. LoadRunner添加检查点

    见过磕长头的人吗?他们的脸和手都很脏,可是心灵却很干净. ——<可可西里> 1.选择需要设置检查点的内容 有如下“添加客户”功能,添加任务操作完成之后,我希望检查是否添加成功.从图中可以看 ...

  8. Loadrunner 使用检查点

    在使用loadrunner 测试时,比如我们在登陆时,我们希望说登录是否成功.这个时候我可以使用检查点函数. 检查登录后,页面上是否返回了某个标识,这样我们可以根据标识判断登录事务是否成功.   现在 ...

  9. loadrunner下检查点乱码情况处理

    对于很多用过LR的人来说,乱码一直是很纠结的事情,尤其是对新手来说.网上给的解决方法是在录制的时候勾选UTF-8选项,但是似乎并没有解决. 对于用户名为中文或者检查点为中文的情况,我们又该如何去处理呢 ...

随机推荐

  1. c trans

    #define BUFSIZE 100 char buf[BUFSIZE]; ; int getch(void) { )? buf[--bufp] : getchar(); } void ungetc ...

  2. random使用

    package com.cz.test; import java.util.Random; public class RandomTest { public static void main(Stri ...

  3. [转载] nginx的负载均衡

    原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...

  4. oracle dba 职责, 及个人需要掌握内容

    ORACLE DBA 职责, 基本相当于日常工作. 0. 数据库设计 1. 模式对象的创建与管理(table, index 等等) 2. 事物管理, 例如并发等 3. SQL 调优 只是针对SQL的 ...

  5. Java JDBC连接数据库 Access连接数据库

    1.加载JDBC驱动程序:  在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),再通过java.lang.Class类的静态方法forName(String  classN ...

  6. Oracle一个用户查询另一个用户的表数据

    1.两个用户是在不同的库,需要建立dblink 2.属于同一个库的不同用户 1)方法一:使用"用户名."的方式访问 例如:要从USER1账号访问USER2中的表TABLE2 A. ...

  7. C#_数据库连接串的配置

    数据库的连接串 数据库连接字符串的拼写规则的决定条件: 连接的数据库的类型:SQL Server,Oracle,MySQL,Acess,MogoDB,Visual FoxPro(dBASE),Exce ...

  8. 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...

  9. foundation系列

    1如何将布尔值转为OC对象?  1把 BOOL 值包装到 NSNumber中: NSNumber *boolNumber = [NSNumber numberWithBool:YES]  2获取BOO ...

  10. RecyleView

    RecyclerView是经典的ListView的进化与升华,它比ListView更加灵活,但也因此引入了一定的复杂性. 我们知道,ListView通过使用ViewHolder来提升性能.ViewHo ...