Bootstrap

MeterSphere接口自动化系列之动态设置全局变量

一、问题描述:

        所有场景接口参数中需要token,token是由登录生成,每次登录后token会改变,该如何动

态获取token并提供给后续场景使用 ?

二、问题分析:

        针对该问题,需要考虑,每个场景执行前登录一次,还是所有场景执行前只登录一次。

        基于上述的分析,无论是哪一种登录方式,都需要先实现登录功能,将获取到的token信息作

为变量,可以提供给后续的场景调用。以下将根据上诉不同登录方式,提供不同的实现方案。

三、实现方案:

1. 每个场景执行前登录一次

1)采用前置全局脚本实现登录,并将登录后返回的token设置为场景变量。

      场景用例只要使用该环境信息,都可以直接使用token。

2) 具体实例:

a. 项目设置>项目环境路径中选择对应环境,进行设置脚本信息

b. 选择已定义好的登录api接口,导入生成脚本请求内容,设置场景变量

2. 所有场景执行前登录一次

1)单独设置登录用例场景,在后置操作中获取token,将变量设置为环境变量,会最终显示在环境信息的通用配置中,用于全局变量引用

      此种方式,只适用于测试计划中,需要将登录场景用例设置在其他场景用例之前执行。

2)具体实例:

a. 登录场景用例,将token设置成全局环境变量,每次执行后,会在通用配置页面自动生成并更新变量值。

vars.put(${__metersphere_env_id}+"token","${token}");

b. 在测试计划中,将登录场景用例放置在第一个执行

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;