c - 使用 LoadRunner/Performance Center 测试 Web 服务

标签 c web-services soap performance-testing loadrunner

我在 Action.Caction() 中有以下代码,如图所示,我已在用户注册中参数化了用户名。我将参数类型保留为迭代编号,将文本格式保留为user%d(例如user1等, )。在运行时设置中,我将迭代次数保留为500。当我从vusergenerator本地运行它时,它工作正常,它创建了500个用户(user1、user2等)并且然后停止。但是,当我通过选择 30 个 vuser 和 2 个负载生成器从性能中心运行它时,脚本行为异常。就像它一直运行直到我手动停止运行一样,它一直给我错误,就像它试图创建应用程序中不允许的相同用户一样,因此应用程序会抛出用户已存在错误。 有人可以指导我如何解决这个问题吗?理想情况下,迭代次数应该由所有 30 个 vuser(线程)全局获取,不是吗?这样每个线程都会创建唯一的用户,直到 500 次迭代。

Action()
{
    web_service_call("StepName=registerUser_91",
        "SOAPMethod=ComRegisterSvc|ComRegisterSvcBinding|registerUser",
        "ResponseParam=response",
        "Service=ComRegisterSvc",
        "URL=http://company.com/registersvc
        "ExpectedResponse=SoapResult",
        "Snapshot=t1446039143.inf",
        BEGIN_ARGUMENTS,
        "xml:userContextDetails="
            "<userContextDetails>"
                "<userNameId>"
                    "<userName>{DynamicUser}</userName>"
                "</userNameId>"
                 "<firstName>{DynamicUser}</firstName>"
                 "<lastName>{DynamicUser}</lastName>"
            "</userContextDetails>",
        END_ARGUMENTS,
        BEGIN_RESULT,
        END_RESULT,
        LAST);

    return 0;
}

最佳答案

迭代编号仅对每个 VUser 是唯一的。在您的情况下,您正在与 30 个用户一起运行,显然迭代编号将是重复的。

您可以使用参数类型作为“唯一编号”来解决重复问题。

关于c - 使用 LoadRunner/Performance Center 测试 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33461628/

相关文章:

C/C++ : is GOTO faster than WHILE and FOR?

sql - 列标题 SQL 脚本

c++ - 如果 printf ("%c%c",'A' ,8);删除A,为什么不能printf ("%c%c",'\n' ,8);删除新行?我该怎么做?

java - id使用单例/同步的Web服务增量变量

javascript - 从 Node.js 调用 SOAP 服务

android - @Order 注解对 XML 序列化顺序没有影响

c - if 语句在 C 中无法正常工作

php - prestashop 通过 url webservice api 创建和更新资源

javascript - Node Js Express 路由器不工作

java - Apache CXF,从 WSDL 文件生成 Web 服务