• 手把手教你编写LoadRunner脚本


    编写 LoadRunner 脚本需要熟悉脚本语言、业务场景、参数化技术、断言和事务等基础知识。

    在实际编写时,可以根据具体测试需求,结合实际情况进行合理的配置和调整。

    基本步骤
    创建脚本
    在 LoadRunner 的 Controller 模块中,创建一个新的测试脚本,您可以选择录制脚本或手动编写脚本。

    添加业务场景
    在脚本中添加业务场景,如登录、购物车、下单、支付等,模拟用户行为。

    参数化
    在脚本中使用参数化技术,将一些动态值(如用户名、密码、订单号等)替换成参数,以便在运行时方便修改。

    添加断言
    在脚本中添加断言,检查每个业务场景执行后的返回结果,确保程序的正确性。

    添加事务
    在脚本中添加事务,用来度量每个业务场景的响应时间和吞吐量。

    调试脚本
    使用 LoadRunner 的 Debug 模式调试脚本,检查是否存在逻辑错误或脚本语法错误,以保证脚本的正确性。

    配置 Vuser 数量
    根据需要模拟的用户数量,配置 Vuser 数量,并设置 Vuser 的独立运行配置。

    运行和分析脚本
    使用 LoadRunner 的 Controller 模块,启动测试过程,等待测试完成后,使用

    LoadRunner 的 Analysis 模块进行结果分析和报告生成。

    脚本编写

    1. Action()
    2. {
    3. char *username, *password;
    4. lr_start_transaction("login");
    5. // 参数化用户名和密码
    6. username = lr_eval_string("{pUsername}");
    7. password = lr_eval_string("{pPassword}");
    8. // 打开主页
    9. web_url("homepage",
    10. "URL=http://www.example.com/",
    11. "Resource=0",
    12. "RecContentType=text/html",
    13. "Mode=HTML",
    14. LAST);
    15. // 单击登录链接
    16. web_link("login_link",
    17. "Text=Login",
    18. "Snapshot=t1.inf",
    19. LAST);
    20. // 提交凭证
    21. web_submit_form("login_form",
    22. "Snapshot=t2.inf",
    23. ITEMDATA,
    24. "User ID={pUsername}",
    25. "Password={pPassword}",
    26. "Submit=Login",
    27. LAST);
    28. // 添加日志语句和断言
    29. lr_output_message("Logged in with username='%s' and password='%s'", username, password);
    30. lr_end_transaction("login", LR_AUTO);
    31. // 处理错误
    32. if (strstr(lr_eval_string("{ResponseURL}"), "error")) {
    33. lr_fail_trans_with_error("Login failed: incorrect username or password");
    34. }
    35. return 0;
    36. }

    需要使用虚拟用户模拟多个用户同时进行登录操作。

    使用参数化来模拟不同的用户名和密码组合,以便在每个迭代中测试不同的凭证。

    通过添加日志语句、断言和错误处理来确保正常的用户流程并记录每个操作的响应时间。

    总结
    该脚本使用 {pUsername} 和 {pPassword} 参数来模拟不同的凭证,并使用 lr_eval_string() 函数从参数文件中获取这些值。在每次迭代中,这些参数会自动更新,以便测试不同的凭证。

    该脚本还使用 lr_output_message() 函数添加日志语句,记录每次登录的用户名和密码,以及 lr_fail_trans_with_error() 函数来处理错误情况,例如登录失败。

    最后,该脚本还包括事务开头和结尾的 lr_start_transaction() 和 lr_end_transaction() 函数,以记录每个事务的响应时间。

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

  • 相关阅读:
    大数据培训之RDD编程模型
    Windows 下Tomcat监测重启
    ThreadLocal
    私有云不是真正的云计算!
    Redis缓存序列化配置
    FMC子卡设计方案:FMC177-基于AD9361的双收双发射频FMC子卡
    Spring Boot整合Redis实现缓存(实战详细)
    FFmpeg 解码 H.264 视频出现花屏和马赛克的解决办法
    C++中使用 min()函数/max()函数进行多数比较
    AQS面试题
  • 原文地址:https://blog.csdn.net/2301_77645573/article/details/133657259