Thanks for the response.

> Have a look in HTTP Raw Request (JMeter Plugins component) and
> *FileToInclude:* marker

I don’t see how this helps.

> Using absolute paths are not a big deal. Standardize a root path using a
> property (and capturing it as a variable in your Test Plan) and put all
> files inside this folder.

This is actually a huge deal.  We have three people working on the project,
each of which will need to set this parameter in the .jmx file to match
their machine.  Naturally, everyone will forget to delete that parameter
before they check the .jmx file into our code repository.  That .jmx file
will also be checked out by our automatic build process that runs on its
own server, so the path will be wrong on that machine as well.

JMeter paths always seem to be relative to the JMeter jar file.  Why would
anyone ever want this?  The only reasonable relative path is relative to
the .jmx file.


Eric Everman
CIDA - Center for Integrated Data Analytics
US Geological Survey
Middleton, WI
651-269-4735
http://cida.usgs.gov/


On Thu, Mar 6, 2014 at 5:47 AM, Flavio Cysne <[email protected]> wrote:

> Let me know If I misunderstood any of your questions. Answers were placed
> between your mailed questions, as follows.
>
>
>
> > Hello - I think I have a pretty common situation here, but JMeter really
> > seems to come up short for this usage.
> >
> > Here is what I'm trying to do:
> >
> > I am adding sets of records to a remote system in JSON.  There are three
> > types of records:
> >
> > Projects
> > Publications
> > Dataset
> >
> > The JSON for each type of record is slightly different, so I made JSON
> > templates for each of those.  These templates have variables to be
> replaced
> > from a CSV file, so there are several ${MyUserVariableName} style
> variables
> > in each template.  But, the remote system doesn't like empty values, so I
> > really need to take out sections of the template when the value is empty.
> >  Here is an example:
> >
> > ====================================
> > . . .
> >       {
> >          "type":"Label",
> >          "name":"${keyword1}"
> >       },
> >       {
> >          "type":"Label",
> >          "name":"${keyword2}"  <<== skip this section b/t curly braces if
> > ${keyword2} is empty
> >       },
> > . . .
> > ====================================
> >
> > So the issues I'm having are the following:
> >
> > 1)  I don't see a good way to remove sections of a template based on a
> > parameter.  Something like this:
> > ${if-present:keyword2}
> > Text and ${keyword2} other variables
> > ${/if-present}
> >
> >
>
> Use HTTP Request samplers with different contents each one inside an If
> Comtroller
>
> - If Controller ( '${keyword2}'=='' )
>     + HTTP Requet WITHOUT keyword2 template
> - If Controller ( '${keyword2}'!='' )
>     + HTTP Requet WITH keyword2 template
>
>
>
> > 2) Templates are not actually supported
> > My template is actually in the HTTP Sample Post Body, but I really don't
> > want to edit a largish document in that tiny window, so it makes sense to
> > keep the file external.  However, if I specify that a file should be
> > included instead, user parameter replacement is not done on that file.
> >
> >
> Have a look in HTTP Raw Request (JMeter Plugins component) and
> *FileToInclude:* marker
>
>
> > 3) HTTP Request Sample File inclusion paths are not relative
> > Even if the user parameter replacement worked for POSTed files, its not
> > possible to reference a file because the path is not interpreted as
> > relative to the .jmx file and the ` tilde character does not work there.
> >  Paths are generally broken throughout JMeter.  In some places the tilde
> > works as a reference to the .jmx file location, in others it doesn't and
> in
> > other locations the path is assumed to be relative to the .jmx file.
> >
> >
> Using absolute paths are not a big deal. Standardize a root path using a
> property (and capturing it as a variable in your Test Plan) and put all
> files inside this folder.
>
>
>
> > 4) The CSV Dataset Config component seems to be designed to only iterate
> > via the loops of a Thread Group
> > The more natural (IMHO) construct of putting a CSV Dataset within a While
> > Loop is either not supported or completely undocumented.  This makes it
> > really hard to have multiple CSV Datasets b/c they each require their own
> > Thread Group.  This is a bit unwieldily and causes issues b/c the
> behavior
> > changes if pulled in as a module, if threads are set to run concurrently
> vs
> > sequentially, or if a login is required.
> >
> >
> >
> Use the __CSVRead<
> http://jmeter.apache.org/usermanual/functions.html#__CSVRead>function
> instead of CSV Dataset Config component.
>
>
>
> >
> > I filed a bug related to some of this stuff, but this just seems like a
> > huge issue in usability for a relatively typical type of usage.
> > BUG:  https://issues.apache.org/bugzilla/show_bug.cgi?id=56197
> >
> >
> > Any thoughts on this?  Am I just approaching this wrong?
> >
> >
> > Thanks,
> >
> > Eric Everman - Applications Developer
> > CIDA - Center for Integrated Data Analytics
> > US Geological Survey
> > Middleton, WI
> > http://cida.usgs.gov/
> >
> >
>

Reply via email to