原始脚本
-获取服务状态
此时公共请求头里的指定信息被删除了,之后的接口要用到这个信息,所以在后续的接口上再添加回来,例如“3-设置服务片”接口会用到公共的信息头,在此接口上添加BeanShellPreProcessor前置处理器,添加请求头信息到公共请求头里。
将“1-片上传”接口从原有的线程组里抽出来,单独放进新建的线程组里,即两个线程组。“1-片上传”接口在一个线程组里,其他接口在一个线程组里。
原始脚本最终优化
脚本结构:
“1-片上传”接口为上传类型的接口,已经在请求里设置了Content-Type:multipart/form-data
执行脚本:
脚本代码:
“1-片上传”接口请求头信息。
“3-设置服务片”、“4-设置服务状态”接口请求头为Content-Type:application/json
注意:公共的HTTP信息头管理器禁用或删除,执行脚本会报错。
脚本结构:
全部接口执行成功。
脚本结构:
将原始脚本进行优化
其他接口所在的线程组里的HTTP信息头管理器,请求头值不变。
因为“1-片上传”接口不需要公共信息头里的请求头信息,所以添加BeanShellPreProcessor前置处理器,删除公共请求头里的信息。
请求头信息添加成功后,后续的接口若要用到这个信息,则无需再添加,就可以使用了。
其中:
“1-片上传”接口的请求头是Content-Type:application/json,而不是Content-Type:multipart/form-data
原始脚本优化2
“1-片上传”接口请求头为Content-Type:multipart/form-data
“3-设置服务片”、“4-设置服务状态”接口需要添加请求头,所以在这两个接口下添加HTTP信息头管理器即可。
执行脚本:
在线程组下添加HTTP信息头管理器,添加值为Content-Type:application/json
执行脚本:
公共的HTTP信息头管理器,请求头值不变。
脚本结构:
执行脚本:
例如有以下5个接口,连起来就是一个自动化操作流程。
每个接口都添加了响应断言。
“1-片上传”接口设置了Content-Type:multipart/form-data
接下来会根据示例来一步步的解决此问题。
所以“1-片上传”接口,不能使用公共的HTTP信息头管理器里的请求头信息。
原始脚本优化1
同时运行两个线程组,全部接口执行成功。
“3-设置服务片”接口请求头信息。
-片上传
-设置服务状态
将原始脚本进行优化
将公共的HTTP信息头管理器的位置调整一下,不作为公共请求头,而是给需要该请求头的接口指定添加。
“3-设置服务片”接口请求头信息。
“2-获取服务数据”、“5-获取服务状态”接口不需要添加请求头。
全部接口执行成功。
-设置服务片
缺点:两个线程组所组成的自动化脚本虽然在业务流程上是可以跑通的,但是这种把线程组分出来,看起来不像一个整体。尤其是线程组脚本越来越多的时候,执行起来有些不方便。
“1-片上传”接口请求头信息。
脚本代码:
-获取服务数据
将原始脚本进行优化
缺点:当接口很多时,如果大量接口都需要指定的HTTP信息头管理器,维护起来有些麻烦、而且脚本看起来有些臃肿,不方便统一修改等。
文章为作者独立观点,不代表股票交易接口观点