jemter接口测试 测试web登录接口,存在图片验证码,怎么处理此问题

本文为博主原创文章未经允许鈈准转载,转载需先私信本人获得同意且须注明出处:By 故三殇





用户定义的变量:域名,此处可以通过修改域名值来更换接口环境达到铨局变更效果,比如测试环境、生产环境



用户参数:登录账号,此处可以配置一些用户登录账号



HTTP 请求默认值:配置所有请求的全局默認值,之后该计划下的所有线程请求这几个参数都直接为空,不用填写一修改则全部修改,达到全局控制效果



HTTP 信息头管理器:全局信息头,必要的身份认证参数配置后所有线程均不用单独配置,同时登录接口获取到的 Cookie / token 变量值,也会运用到这里达到全局获得此身份认证的效果。





(1)HTTP 请求:登录接口



Json 断言:断言登陆成功



 

 

 

jenkins集成jmeter接口测试脚本配置执行参數配置如下图

选择循环永远,执行持续时间7200s运行

根据日志查看运行时长为01:59:45,确实为配置时长但是jmeter运行却没有结束

查看java进程发现jmeter进程仍嘫存在

1.jmeter运行时间肯定是没有问题的,根据日志可看到运行时长正确却没有结束,卡在此处

2.查看jmeter运行日志,没有报错同样也是在执行唍后没有后续的其他日志,排除其他错误

3.考虑jenkins其他任务是否会影响到jmeter执行,因为当时在同时执行多个任务于是单独执行测试后,仍然沒有通过同样卡在jmeter执行中,排除其他任务影响

4.猜测jmeter循环执行定时机制,查看运行系统的时间确实与当前时间不一致。

修改完成后原来没有结束的jmeter任务自动结束,并输出测试报告

综上,可得出结论是系统时间影响了jmeter结束判断,具体的原理需要查看jmeter实现代码

随着网络安全(例如:登录安全等)要求的不断提升越来越多的登录应用在登录时添加了验证码登录,而验证码生成算法也在不断的进化因而对含登录态的自动化测試脚本运行造成了一定程度的困扰,目前解决此种问题的方法主要有如下三种:

第一、OCR识别获取验证码图片,识别图片中的验证码此方法适用于单纯的验证码,而非逻辑验证码且此种识别需要耗费大量的资源,不建议采用;

第二、万能验证码针对特定的用户,或特萣IP地址段的用户设置一个验证码(例如:asdf123),不建议采用此种方式因为源码上线有一定的风险,建议测试、开发环境下使用;

第三、Cookie登录通过 Cookie 信息实现登录,推荐此种方式此种方式需要考虑登录 Cookie 的时效性,在失效后重新修改一下 Cookie 即可建议将 Cookie 参数化,方便维护

那麼我们该如何获取 Cookie 呢?当前很多的浏览器都提供了开发调试工具当然其中也包涵了 Cookie 信息的查看途径。

将上图中的 Cookie 信息保存至配置文件茬自动化脚本中读取相应的 Cookie 信息即可实现免登录操作,从而进行登录态的应用操作

第一步、录制查看收藏列表的 HTTP请求:

录制查看收藏列表的HTTP请求,只需启动 Fiddler、配置代理、执行查看收藏操作即可在此不再赘述,谢谢!录制好查看收藏列表的HTTP请求后脚本页面视图如下所示:

因此时我们没有登录,在脚本中也无对应的 Cookie 存在假如我们此时运行脚本,那么请求响应将会提示我们未登录如下所示:

第二步、读取 Cookie 配置文件

配置路径:【添加 / 配置元件 / CSV Data Set Config】,读取第一步获取的 Cookie 参数文件中的数据若不知如何配置,敬请参阅博文:配置完成的读取配置如下所示:

操作路径:【添加 / 配置元件 / HTTP Cookie管理器】,打开 HTTP Cookie管理器的配置页面如下图所示:

  1. 名称:对该 Cookie管理器的自定义概述
  2. 注释:对该 Cookie管悝器的详细描述
  3. 每次反复清除Cookies?:选择后则每次线程组运行时,都会清除 cookiePS:若是手动添加的cookie,则不会被清除
  • compatibility:推荐选择此种策略。這种兼容性设计要求是适应尽可能多的不同的服务器尽管不是完全按照标准来实现的。如果你遇到了解析 Cookies 的问题你就可能要用到这一個规范。有太多的web站点是用CGI脚本去实现的而导致只有将所有的 Cookies 都放入 Request header 才可以正常的工作。这种情况下最好设置
  • netscape:是最原始的 Cookies 规范同时吔是 RFC2109 的基础。尽管如此还是在很多重要的方面与 RFC2109 不同,可能需要特定服务器才可以兼容

利用第二步配置读取的数据,引用其名称对仩步中的 HTTP Cookie管理器,实行参数化配置完成的 HTTP Cookie管理器如下所示:

将上述配置的 HTTP Cookie管理器,放到相应的 HTTP请求下即可如下图所示:

第六步、执行腳本,查看结果:

我们通过 HTTP 请求的信息可以看出 HTTP Cookie 是否正确添加至 HTTP请求如下图所示:

脚本执行结果如下所示:

我要回帖

更多关于 jemter接口测试 的文章

 

随机推荐