业务需求:现有登录接口和获取用户信息接口,登录后放回access_token,获取用户信息接口带着返回的token去获取用户信息:入参用户名和通过参数化传入接口用LR录制的信息如下:

点击查看代码

Action()
{

    web_add_header("Authorization","Basic emx0OnpsdA==");

web_reg_save_param("token",
		"LB={\"datas\":{\"access_token\":\"",
		"RB=\",\"token_type\"",
		"Search=Body",
		LAST);


	lr_start_transaction("登录");

	web_submit_data("token_2", 
		"Action=http://172.16.2.89:9900/api-uaa/oauth/user/token", 
		"Method=POST", 
		"RecContentType=application/json", 
		"Referer=http://172.16.2.89:1081/login.html", 
		"Snapshot=t9.inf", 
		"Mode=HTML", 
		ITEMDATA, 
		"Name=username", "Value={username}", ENDITEM, 
		"Name=password", "Value=111111", ENDITEM, 
		"Name=validCode", "Value=1", ENDITEM, 
		"Name=deviceId", "Value=2C83404C-FA43-47D8-83BF-720EA6F81A38", ENDITEM, 
		LAST);


	web_url("index.html", 
		"URL=http://172.16.2.89:1081/index.html", 
		"Resource=0", 
		"RecContentType=text/html", 
		"Referer=http://172.16.2.89:1081/login.html", 
		"Snapshot=t10.inf", 
		"Mode=HTML", 
		EXTRARES, 
		//"Url=/favicon.ico", "Referer=", ENDITEM, 
		LAST);
lr_end_transaction("登录", LR_AUTO);


lr_start_transaction("获取用户信息");


	web_url("网页别名_2", 
		"URL=http://172.16.2.89:9900/api-user/userinfo/user/{username}?access_token={token}", 
		"Resource=0", 
		"RecContentType=application/json", 
		"Referer=http://172.16.2.89:1081/index.html", 
		"Snapshot=t12.inf", 
		"Mode=HTML", 
		LAST);

	lr_end_transaction("获取用户信息", LR_AUTO);


//lr_output_message("当前token为:%s", lr_eval_string("{token}"));
	return 0;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.

**
使用SoapUI进行测试

  1. File-New REST Project,输入请求网址
  2. SoapUI pro 参数化及关联实战_html

  3. 请求选择post并添加请求参数
  4. SoapUI pro 参数化及关联实战_参数化_02

  5. 添加header认证
  6. SoapUI pro 参数化及关联实战_获取用户信息_03

  7. 执行请求并查看结果正确与否
  8. SoapUI pro 参数化及关联实战_获取用户信息_04

  9. 右键添加到测试用例
  10. SoapUI pro 参数化及关联实战_参数化_05

  11. 修改用例名称为登录请求
  12. SoapUI pro 参数化及关联实战_参数化_06

  13. 要参数化手机 创建数据源
  14. SoapUI pro 参数化及关联实战_获取用户信息_07

  15. 选择datasource 点击添加 进入添加页面
  16. SoapUI pro 参数化及关联实战_参数化_08

  17. 添加参数名字
  18. SoapUI pro 参数化及关联实战_获取用户信息_09

  19. DataSource选择file类型并浏览参数化的文本文件(文件中手机号码均来自数据库中可用的)
  20. SoapUI pro 参数化及关联实战_参数化_10

  21. 添加datasouce loop 目的是可以循环读取参数值
  22. SoapUI pro 参数化及关联实战_html_11

  23. 双击 datasouce loop 设置如下
  24. SoapUI pro 参数化及关联实战_获取用户信息_12

  25. 对手机号进行参数化 选择登录请求中手机号 点击GetData-DataSource-Property-phone
  26. SoapUI pro 参数化及关联实战_参数化_13

  27. 执行测试套件,观察日志参数手机号是否被替换为参数化的取值
  28. SoapUI pro 参数化及关联实战_参数化_14

  29. 添加第二个接口获取用户信息接口请求并添加到测试套件
  30. SoapUI pro 参数化及关联实战_html_15

  31. 设置获取用户信息的电话号码参数
  32. SoapUI pro 参数化及关联实战_获取用户信息_16

  33. 新建参数传递选项 选中接口1中返回的access_token,右键transfer to 将登录接口返回的token传给获取用户信息接口中的token

SoapUI pro 参数化及关联实战_参数化_17


SoapUI pro 参数化及关联实战_参数化_18

  1. 执行测试套件 查看传递的参数值token是否正确
  2. SoapUI pro 参数化及关联实战_参数化_19


  3. SoapUI pro 参数化及关联实战_获取用户信息_20

  4. data loop 范围我登录和获取用户信息接口
  5. SoapUI pro 参数化及关联实战_html_21


  6. 20 执行套件可以看到不断变化的参数电话号码及token取值 证明配置正确
  7. SoapUI pro 参数化及关联实战_获取用户信息_22