就是怎么在jmeter测试里面就是怎么建立一个成绩表,进行测试,它的路径和地址是怎么回事?!
由于支持云的应用程序通常可以轻松、快速地进行复制和部署,所以可以在多种环境中对其进行测试。如果您需要在多个环境中测试和运行自动化脚本,那么可以在 JMeter 中使用一个独立的属性文件为连接资源(如,应用服务器和数据库)定义数据(包括登录凭据),这样做很有好处。
在 JMETER_HOME/bin 目录下的三个文件中定义 JMeter 的属性和变量。在启动 JMeter 时,它会按以下顺序加载这些文件:
jmeter.properties
一个可选的用户定义的属性文件
system.properties
当 JMeter 正在运行的时候,如果要添加任何新属性或改变现有的属性,则必须先关闭 JMeter,然后重新启动它,使更改生效。
jmeter.properties 文件存储与 JMeter 应用程序本身有关的属性。这个文件中仅 保留了特定于 JMeter 程序的属性或特定于框架的属性。创建一个单独的文件(文件名由您选择),用该文件来存储测试环境特定的属性和变量,它们对于和接受测试的应用程序有关联的所有脚本来说是全局的属性和变量 — 例如,管理员的用户名/密码。在 jmeter.properties 文件中,取消对 user.properties 设置的注释,并将 user.properties 的值设置为所创建的文件的名称。清单 1 中的示例将该值设置为 myuser.properties:
清单 1. 在 jmeter.properties 文件中指定一个用户属性文件
user.properties=myuser.properties
清单 2 中的示例用户属性文件显示了在用户属性文件中定义变量所用的格式。(在该定义中,等号左边的任何地方都不允许有空格;必要时,属性值可以包含空格)。
控制面板的 Value 列中的每个项目的格式为:
${__property(VARIABLE_NAME,VARIABLE_NAME)}
例如,来自用户属性文件的 USER_LOGIN 变量被读取为脚本中的 ${__property(USER_LOGIN, USER_LOGIN)} 函数。括号中的第一个 USER_LOGIN 是在属性文件中定义的变量的名称(并且已在控制面板的 Name 列中列出)。如果属性文件中没有定义变量,那么第二个实例是默认值或回退值。
何时在属性文件中定义一个变量,何时将它定义为 JMeter 脚本里面的一个变量,这些并没有严格的规定。但有两个准则可以帮助您在多个 JMeter 脚本中实现一致性,并减少不必要的重复变量定义:
如果在几个脚本一致地使用相同的值,那么可以在用户属性文件或 system.properties 文件中定义数据。这方面的示例包括系统变量(例如,数据库名称和服务器名称),以及执行范围的变量(例如,日志级别)。
如果一些脚本使用一个在各脚本中可能会变化的值,那么可以将它定义为一个脚本变量,或在外部数据文件中定义它,例如,逗号分隔值(CSV)文件。
使用 JSON 模板文件实现有效负载分离
许多云 API 要求使用 JSON 有效负载作为输入。JSON 定义了一组结构化的元素,可以将它们嵌套在其他元素中。每一个元素定义一个或多个名称/值对。功能测试包括以指定格式反复提供数据。例如,在一个典型的 REST API 调用中,JSON 有效负载在 REST HTTP 请求的主体中传递,并且通常包含硬编码的数据。硬编码的数据通常会在多个测试中重复,并分散在整个脚本中。
这种方法的一个常见问题是,如果 JSON 结构(或数据)发现变化(也许是因为 API 参数的更改),那么您必须进入 JMeter 测试,找到 HTTP 请求的主体,并修改 JSON 结构(和数据),以满足新的要求。如果在使用此 JSON 结构的多个 JMeter 测试用例中有数千个 HTTP 请求,那么必须执行许多重复的编辑。
更好的方法是创建一个 JSON 结构模板,并定义数据目的地的替换字符串。JSON 模板不包含任何硬编码的数据值,而是定义在脚本运行时随实际数据一起加载的引用变量。然后,模板被读入 JMeter 脚本中的某个变量,并在 HTTP 请求主体中被替换。
清单 3 显示了定义一个 JSON 有效负载的传统方式:
清单 3. JMeter 测试计划中的静态 JSON 定义