SoapUI测试登录

实际登录过程为:

1. 打开/login页面

2. 登录

3. 自动调整至/dashboard页面

 

SoapUI的设计上,每一次请求后,都会清理掉cookie,于是设计的测试登录过程如下:

1. post:/login

2. 读取第一步的session,传递给下一步

3. get:/dashboard

 

1. 创建一个TestSuite

2. 新建一个TestCase,命名为login

3. 添加HTTP Request:login,设置Method为POST,在Requset参数配置参数(具体根据接口文档配置),勾选Post QueryString(对应于过程中的第一步)

4. 添加HTTP Request:dashboard,设置Method为GET(对应于第三步)

5. 在login和dashboard两步中添加Groovy Script

6. 在Groovy Script中传递cookie中的userSession信息

import com.eviware.soapui.support.types.StringToStringMap

def cookiesList = testRunner.testCase.getTestStepByName("login").testRequest.response.responseHeaders["set-cookie"]
log.info cookiesList
 
//Get the cookie
String cookieNew = cookiesList.get(0)
log.info "cookie : "+cookieNew

//Put cookie to a StringMap
def cookieMap = new StringToStringMap()
cookieMap.put("Cookie",cookieNew)

testRunner.testCase.getTestStepByName("dashboard").httpRequest.setRequestHeaders(cookieMap);

 

测试结果:

运行该Test Case

在TestCase Log中找到Step3的结果,打开后,查看Response Message中的HTML,可以看到dashboard页面

 

刚刚开始入门SoapUI,整个登录过程的测试,挺坎坷的。一直不知道session怎么传递。

首先看菜单,就觉得可以使用Property Transfer:

折腾了很久,都没有成功。也不想网上搜索的使用Property Transfer时,可以使用Select Source XPath

 

由于一直使用Property Transfer传递值不成功,仔细看了login那一步的Response Message,发现Raw中,有在cookie中写入usersSession

马上转为考虑从cookie中读取userSession。

但是我所找到的所有网上的读取cookie都是使用:

但是一直不成功,并且SoapUI一直报错说cookiesList为null,导致后面的代码无法执行。

一度放弃研究SoapUI,然后发现,login -- Response Message -- Raw中的是“set-cookie”,结果发现,这里大小写敏感。

 

参考:

1. Property Transfer使用:http://blog.csdn.net/wanglha/article/details/48286169

2. SoapUI设置Cookie:https://www.cnblogs.com/milo-xie/p/6431575.html

 

转载于:https://www.cnblogs.com/CinYung/p/7833632.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值