【问题标题】:How to replay event which triggered by server in performance-test (Loadrunner, socket, C/S)?如何在性能测试(Loadrunner、socket、C/S)中重放服务器触发的事件?
【发布时间】:2014-08-12 08:43:35
【问题描述】:

前提条件:我正在使用药房管理系统进行性能测试。 这个系统是:

  • 基于C/S结构
  • .Net 使用 WCF 开发,这意味着它的客户端通过套接字与服务器通信
  • 使用 MySQL 作为数据库

它的功能之一是配药。它有五个客户端(称为“Window1”到“Window5”)和一个服务器。它的工作流程是这样的:

  1. 服务器从 HIS(医院信息系统)接收处方并生成任务;
  2. 在一名患者登记后,服务器将该任务发送到一个相对空闲的窗口;
  3. 窗口接收、完成该任务并将任务状态返回给服务器;
  4. 服务器将任务状态更新为 HIS。

从这个过程中,很明显客户端在从服务器接收到任务之前什么都不做。这意味着客户端是由服务器驱动的。

我的尝试:

  • 工具:Loadrunner
  • 协议:Windows 套接字

我在客户端(“Window1”)记录了一次配药(一个处方包括一种药物的任务),但失望地发现它无法重播。猜猜这是因为“buf”(我的客户端从服务器接收到的包括几个变量,如“任务 ID”、“遭遇 ID”等唯一标识任务)无法在回放中接收。

问题:那么,当事件不是由客户端而是由服务器触发时,我如何模拟客户端行为?感谢您阅读本文,任何建议都会有很大帮助:)

【问题讨论】:

    标签: c# sockets testing performance-testing


    【解决方案1】:

    如果您没有使用 Winsock(类似于从胡椒粉中挑选苍蝇粪便)的经验,那么您最好考虑 .net 虚拟用户类型、Citrix 虚拟用户或 RDP 虚拟用户。最后,您还可以考虑 GUI 虚拟用户(最后的手段,因为这将是 1993 年性能测试的最新技术)

    【讨论】: