s-HR Cloud性能测试登录脚本制作

【适用版本】
s-HR Cloud 9.0版本以上
【问题场景】
使用Jmeter制作s-HR登录脚本
【解决方案】
s-HR使用的EAS SSO,登录步骤与EAS portal一致,需要注意的是现在EAS SSO采用了RSA非对称加密来加密请求中的部分登录信息。
在做性能测试之前需要将登陆时的验证码屏蔽,不然将无法登录成功。
登录页验证码屏蔽方法参考:https://vip.kingdee.com/article/622443139872872704
使用Jmeter录制好登录请求后,可以看到所有的请求参数都是固定的,过一段时间请求就无法使用了。
所以这里需要对请求参数进行参数化,和RSA加密。
需要参数化的参数有:数据库名,用户名,密码,easSessionId(提取自登录页),lt(提取自登录页)
需要加密的主要参数有:数据库名(Base64),用户名(RSA),密码(RSA),easSessionId(RSA),lt(Base64)
需要特别注意的参数:dbType,数据库类型,这个需要根据实际情况填入对应的数字
这里给出一些常用数据库对应的数字:Sqlserver — 3 , Oracle — 2 , Postgresql — 5 , Kingbase — 12
参考最后完成修改的请求参数的样子:

加密方法:
如上图所示,除去用户名和密码外,大多数参数直接使用Jmeter自带函数__base64Encode进行加密即可
用户名和密码需要使用JSR223处理器来模拟RSA加密
JSR223处理器中脚本语言选择groovy,随后加入Java代码
引入必要的库
import javax.crypto.*;
import java.security.*;
import java.security.spec.*;
import java.util.Base64;
获取需要加密的参数的值,赋值给Java变量,publickey为从登录页提取的公钥
String sUser = vars.get("username");
String sPass = vars.get("password
s-HR Cloud性能测试登录脚本制作
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



