在某些业务中,会产生一些临时的变量值,当这个业务结束后这些变量也会在内存中清空。我们在发送某些接口请求的时候,请求参数要求带上这些临时的变量值。
我们一般做接口测试的时候,通过get方法,手动拼接起请求URL向服务器发送,并接收到response。而事先拼接需要的参数我们都是从之前设置好的测试数据中得到,这些数据也都是存在数据库中,所以通过sql很容易得到需要的参数值。但是这种需要在做业务时带上临时参数的request ,我们无法在发送请求前得到临时变量的值。因为这些值是做业务的时候产生,业务结束变量就释放,并没有存在数据库里,所以也无法通过sql来取得值。
既然是在页面做某个业务时产生的,那么我们就先通过get,模拟发送触发这个业务的请求。这样在服务器上就生成了需要的临时变量。
这里我写了个方法来产生这段临时参数的url段。这里我用的ruby。
def get_temp_info_for_transaction
begin
driver.get("http://xxxxxxxxxx") #通过这个请求使服务器生成临时参数
url_temp_part="temp1_id=0&temp2_id=1&temp3_id=1" #temp_id是临时参数
rescue =>e
Common.logger_error e
end
return url_temp_part
end
url_temp_part中temp_id是事先就得到的,而等号右边的值是该请求发送后,会产生的最小值,也就是说只要有请求发送,这些值肯定存在于服务器内存中。所以我取这个值肯定是正确的。
在具体的case中使用该方法,得到url_temp_part,再把这段URL拼接到请求URL中就完成了整个request的设置。