我是Jmeter的新手,正在做一个POC来对web应用程序进行负载测试。
我想做的事情:我总共有4个用户登录(外科医生(。每个登录都与"n"个患者数相关联。我已经创建了2个CSV文件
- 一个具有外科医生用户登录名和密码的
- 另一个CSV文件,包含PatientName、PatientID和与该患者相关的外科医生,如下所示
PatientName,PatientId,loginNamePa1、PID1、user1Pa2、PID2、user1Pa3、PID3、user1Pa4、PID4、user1Pa5、PID5、user2Pa6、PID6、user2Pa7、PID7、user3Pa8、PID8、user4
我的场景:
以用户身份登录。根据关联导航到每个患者面板。注销应用程序。我的测试计划
线程组(4个用户,上升时间为1秒,1个循环(-csv1(带用户名和密码(-登录页面并导航到主页-运行时控制器(以维持设定时间量的负载(--While Loop(在外科医生/用户登录的患者仪表板之间循环(---CSV2(数据如上所示(----导航到仪表板----导航到Main-退出应用程序
我想要实现的目标:
我想使用单线程组,并为所有4个用户同时运行它。在这个过程中,一旦用户登录,用户应该只使用CSV中关联的患者数据。例如:当Thread1使用User1登录运行时,他应该只能循环通过Pa1、Pa2、Pa3、Pa4用户。当thread2使用User2登录运行时时,用户应该只读取Pa5、Pa6数据。
像这样,每个用户登录都应该只根据上面提到的关联来选择那些用户。有没有办法,我可以使用这个单独的CSV2文件来完成这个任务?这样我就不必创建n个线程的n个登录,其中n个CSV文件每个都包含特定于用户登录的数据。
我确实尝试过使用_CSVread函数,但这将使我创建多个文件(我目前有500个CSV文件(,这不是一个好主意。期望找到一个解决方案,将所有数据放在一个CSV中,并根据Column值读取它。
JMeter不支持基于特定列值从CSV文件读取数据,您可以考虑以下选项:
- 为每个外科医生创建单独的CSV文件,并使用__CSVRead((函数根据当前记录的外科医生id/name/whatever获取相关文件
- 使用If Controller根据外科医生名称选择执行分支
- 使用"切换控制器"根据外科医生名称选择该执行分支或该执行分支