首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在get中,我需要发送带有随机文件名的文件路径,如何获得该随机文件名以传递请求。

在get中,我需要发送带有随机文件名的文件路径,如何获得该随机文件名以传递请求。
EN

Stack Overflow用户
提问于 2016-05-25 15:42:52
回答 2查看 761关注 0票数 0

我正在加载测试一个web应用程序场景,其中:

1.)首先,我需要上传一个excel文件,它将被解析,工作表(excel中的选项卡)加载到下拉列表中。

)然后在下拉菜单中选择一个选项并单击“导入”按钮。

3.)单击“导入”之后,打开一个新的弹出,在网格中加载一些带有“更新到数据库”按钮的数据。现在单击“数据库更新”按钮。

这是我的负载测试场景,我需要加载测试“导入”和“更新到数据库”请求。

在这个场景中,4个请求可以工作。

  • 第1点中的:servicename为:/xxx/xxx/upadLoader.aspx

params中的是:2视图、按钮、应用程序、公司、文件名(包含多部分数据)。

响应:它返回文件上传控件的

  • 使用两个请求的点2:

a)服务url为: /xxxx/xxxx.asmx/updateImportSubTableFormat

中的params:

代码语言:javascript
复制
{"as_connstring":["GET"],"alist_import":[{"__type":"ApplecartDS.DataLib.ImportTableMain","rowstate":"OLD","tableno":"019","oldtableno":"019","formatid":"I0000012","oldformatid":"I0000012","columnname":"pay_billrefno","oldcolumnname":"","columndesc":"Bill No","aormdesc":"Actual","excelcolumnname":"D","excelcolumnno":"3","excelcolumnnameadd1":"","excelcolumnnoadd1":-1,"excelcolumnnameadd2":"","excelcolumnnoadd2":-1,"serialno":"1","oldserialno":2,"formatname":"","startingrowno":0,"endingrowno":0,"keycolumn":"","keycolumndesc":"","payiddesc":null,"attributetype":"","paytype":"A",".............**some more output data here**.................... 1,"excelcolumnnameadd2":"","excelcolumnnoadd2":-1,"serialno":"3","oldserialno":3,"formatname":"","startingrowno":0,"endingrowno":0,"keycolumn":"","keycolumndesc":"","payiddesc":null,"attributetype":"","paytype":"A",""provision_actual":"P","dsexecstatus":"","dsmsg":"","slno":0,"as_fromatid":"I0000012","ai_xlcolumnname":"A","ai_xlcolumnno":"1","ai_startrow":"2","ai_endrow":0,"ai_header":"1","as_payid":"MEDRE","as_leaveid":"MEDRE","as_wfdcolname":"","ai_wfdcolno":0,"as_arrcolname":"","ai_arrcolno":0,"as_transafertype":"A"}

响应:

代码语言:javascript
复制
{"d":[{"__type":"ApplecartDS.DataLib.ImportTableMain","rowstate":"OLD","tableno":"","oldtableno":"","formatid":"","oldformatid":"","columnname":"","oldcolumnname":"","columndesc":"","aormdesc":"","excelcolumnname":"","excelcolumnno":0,"excelcolumnnameadd1":"","excelcolumnnoadd1":-1,"excelcolumnnameadd2":"","excelcolumnnoadd2":-1,"serialno":0,"oldserialno":0,"formatname":"","startingrowno":0,"endingrowno":0,.............**some more output data here**...................."","valuefrom":"E","default_value":"","aorm":"A","benefitsid":"","licpayid":"","createmaster":"","allowzero":"N","groupid":"","groupdesc":"","reimbpayid":"","provision_actual":"P","dsexecstatus":"","dsmsg":"","slno":0}]}

注:,如果我在parmas中按相同的请求,那么它将返回正确的相同响应。

b)服务网址为: /AAA/AAA.asmx/importXLData

中的params:

代码语言:javascript
复制
{"as_connstring":["GET"],"as_filename":"C:\\Websites\\xxxx\\xxxx\\admin\\001\\admin115.248.100.6825520164659134Import_Template.xlsx","ai_header":2,"as_tablename":"rm_claimsmain","as_sheetname":"'Reim claim$'","as_tableno":"019","as_fromatid":"I0000012","as_creditperiodid":"","isUpdate":false,"isupdatemonattribute":false,"alistUpdatedata":[],"as_excelfilepath":"C:\\Websites\\xxxx\\xxxx\\admin\\001\\admin115.248.100.6825520164659134Import_Template.xlsx"}

响应

代码语言:javascript
复制
{"d":[{"__type":"ApplecartDS.DataLib.ExcelDataImport","CValues1":"","CValues2":"","CValues3":"","CValues4":"","CValues5":"","CValues6":"","CValues7":"","CValues8":"",..........**very long out put data here**.......
,"NValues50":0,"NValues51":0,3":0,"IValues4":0,"rowmodify":"N","rowstate":"OLD","dsexecstatus":null,"dsmsg":""}]}

注意:,但是如果我再次按相同的请求,那么它将显示如下响应,这与上面的响应(第一次响应)不同。因为在手册中每次都会更改文件名,但是我无法获得新的文件名以在JMeter请求中传递。

第二次响应:

代码语言:javascript
复制
{"d":[{"__type":"ApplecartDS.DataLib.ExcelDataImport","CValues1":"","CValues2":"","CValues3":"","CValues4":"","CValues5":"","CVal","CValues17":"","CValues18":"","CValues19":................................. dsexecstatus":"FAIL","dsmsg":"Exception : System.Data.OleDb.OleDbException (0x80004005): The Microsoft Office Access database engine could not find the object \u0027C:\\xxxx\\xxxx\\xxx\\admin\\001\\admin115.248.100.6825520165121629Import_Template_test_case_9May2016.xlsx\u0027.  Make sure the object exists and that you spell its name and the path name correctly. 

点3是使用1请求

服务网址: /xxxx/xxxx.asmx/importXLData

中的

代码语言:javascript
复制
{"as_connstring":["GET"],"as_filename":"C:\\xxxx\\xxxx\\temp\\admin\\001\\admin115.248.100.682552016571324rm_claimsmain.xml;C:\\Websites\\cPayv8html\\temp\\admin\\001\\admin115.248.100.682552016571324rm_cliams.xml","ai_header":"1","as_tablename":"rm_claimsmain","as_sheetname":"'Reim claim$'","as_tableno":"019","as_fromatid":"I0000012","as_creditperiodid":"","isUpdate":true,"isupdatemonattribute":false,"alistUpdatedata":[{"__type":"ApplecartDS.DataLib.ExcelDataImport","CValues1":"Employee No;C;30;em_empno","CValues2":"Bill No;C;30;","CValues3":"Bill Date;D;30;","CVal/Date(-62135596800000)\/"..........**some more in data**..........,"DValues10":"\/Date(-62135596800000)\/","ls_msg1":"5","ls_msg2":"C:\\xxxx\\xxxx\\xx\\admin\\001\\admin115.248.100.682552016571324rm_claimsmain.xml;C:\\xxxx\\xxx\\xx\\admin\\001\\admin115.248.100.682552016571324rm_cliams.xml","ls_msg3":"","ls_msg4":"","NValues1":0,"NV4":0,"rowmodify":"N","rowstate":"OLD","dsexecstatus":null,"dsmsg":""}],"as_excelfilepath":"C:\\xxxx\\xxxx\\xxx\\admin\\001\\admin115.248.100.6825520164659134Import_Template_test_case_9May2016.xlsx"}

响应

代码语言:javascript
复制
{"d":[{"__type":"ApplecartDS.DataLib.ExcelDataImport","CValues1":"","CValues2":"","CValues3":"","CValues4":"","CValues5":"","CValues6":"","CValues7":"","CValues8":"","CValues9":"","CValues10":"","CValues11":"","CValues12":"","CValues13":"","CValues14":"","CValues15":"","CValues16":"","CValues17":"","CValues18":"","................................ "rowmodify":"N","rowstate":"OLD","dsexecstatus":"SUCCESS","dsmsg":"Update to Database success !    New Rows added :0 \u003c\u003e Rows Updated : 49"}]}

如果我再次按同一请求,那么第二次响应是:

代码语言:javascript
复制
......................"dsexecstatus":"FAIL","dsmsg":"Exception : Could not find file \u0027C:\\Websites\\cPayv8html\\temp\\admin\\001\\admin115.248.100.682552016525264rm_claimsmain.xml\u0027."}]}

我的问题是在第二次响应中,它没有显示正确的响应,因为文件名正在随机更改,并且我无法跟踪它以将更改的文件路径传递给请求。

有办法处理吗?请帮助我,我如何加载测试与一个真实的反应。

EN

回答 2

Stack Overflow用户

发布于 2016-05-25 16:12:16

${__RandomString(6,a12zeczclk,MYVAR)}将返回从a12zeczclk集中挑选的6个字符的随机字符串,并将结果存储在a12zeczclk中,MYVAR将包含2z22ak或z11kce、…之类的字符串。

请参阅:RandomString

票数 1
EN

Stack Overflow用户

发布于 2016-05-26 05:54:08

窥探

找不到文件\u0027C:\Websites\cPayv8html\temp\admin\001\admin115.248.100.682552016525264rm_claimsmain.xml\u0027.

当您上传该文件时,它似乎被存储在某个临时位置,并且当该文件导入数据库时--它已被删除。因此,这是典型的“关联”示例,您需要从先前的响应中获取一个动态参数并将其添加到下一个请求中。

我建议仔细检查服务器响应,并从那里获得临时文件名。

当您的服务器使用JSON进行响应时,我建议使用

  • JSON路径PostProcessor -如果您使用的是JMeter 3.0
  • JSON路径抽取器 --如果您正在使用以前的JMeter版本

JSON路径语法非常容易,请查看以下引用:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37441937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档