scala – 加特林饲养者的用法
我正在尝试使用两个gatling馈线来生成http post请求数据:
第一个文件包含一些字段.其中一个是柜台.有了这个值,我想添加到我的帖子主体到第二个馈线的线. 例如 : fileA.csv --------- fileAId,counter value,3 fileB.csv --------- fileBId stack overflow 我想构造这个字符串:“值栈溢出栈”. 我创建了一个场景: object Actions { val search = forever() { group("Test") { exec(feed(FeederUtils.fileAFeeder)) .exec( http("Test") .post(uri) .body(StringBody("""${fileAId} """ + FeederUtils.generateItems(${counter}.toInt))) ) .pause(20 seconds) } } } 和一个对象FeederUtils: object FeederUtils { val fileAFeeder= csv("fileA.csv").circular var fileBFeeder = csv("fileB.csv").circular def generateItems(itemsNumber: Int) : String = { var i = 0; var returnedString = ""; for(i <- 0 to itemsNumber) { exec(feed(fileBFeeder)) returnedString = returnedString + """${fileBId} """ } return returnedString ; } } 我有两个问题:函数调用没有编译(找不到:值$),而generateItems中不存在馈线变量. 我是Gatling&的新手. Scala所以我认为这很明显,但我不明白exec和feed函数是如何工作的. 谢谢 ! 编辑:功能代码如下: object FeederUtils { val fileAFeeder= csv("fileA.csv").circular var fileBVector = csv("fileB.csv").records var fileBIterator = 0; def generateItems(itemsNumber: Int) : String = { var i = 0; var returnedString = ""; for(i <- 0 to itemsNumber) { var currentItem = fileBVector(fileBIterator) //Circular read if (fileBIterator < fileBVector.size) { fileBIterator+=1 } else { fileBIterator=0 } returnedString = returnedString + currentItem("fileBId") } return returnedString ; } } object Actions { val search = forever() { group("Test") { exec(feed(FeederUtils.fileAFeeder)) .exec({session => session.set("generatedString",feederUtils.generateItems(session("counter").as[String].toInt))}) .exec( http("Test") .post(uri) .body(StringBody("""${fileAId} ${generatedString}""")) ) .pause(20 seconds) } } } 下面的概念是:feed函数将数据存储到会话属性中,这些属性可以从gatling EL表达式中获取,也可以使用Session API手动处理.我必须把两者结合起来. 链接: Session API EL Expressions Session manipulation with exec 解决方法
您不能将馈线用于第二个文件.充其量,您可以一次提取多个记录,但名称将被翻译(fileBId1,fileBId2 …).
使用Gatling csv解析器加载第二个文件内容,这样您就可以访问记录(记录字段)并将其存储到全局值中. 从第一个文件中提取. 然后写一个exec(function)你在哪里: >从会话中获取计数器 不要尝试在自定义代码中使用Gatling EL.见doc. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |