zoukankan      html  css  js  c++  java
  • 【接口自动化测试】jmeter如何编写一个接口自动化项目的经验总结

      本年度主要的成果应该就是接口自动化的实现,实现归实现,不能保证以后还会发生变动。这次主要说说整个接口的测试和自己的写法总结把。

      我把一个计划分成两部分,一部分为比较独立的接口,一部分为测试用例。我们一般都是先实现了一个个接口的通过后,才会将所有接口结合在一起,写成我们需要的接口测试用例,而这测试用例就是我们以后只需要让他自动化去运行的测试用例。如图1:

         

       首先我们先确定一个线程组,这个线程组里设置通用的HTTP请求,一个控制器设置登录,一个控制器放置单接口、带登陆的请求头、自动化接口测试用例。

      自动化接口测试用例中,我们会设置一个用户定义变量,原本我是打算去掉,后来觉得这个用户定义变量,可以让我们自己决定是否需要。原因是1.我们都把变量全部写在取样器,虽然都能实现,但是维护上我们无法清晰的知道变量关系,我们可以通过用户定义变量的注释来清晰知道我们设置变量的意义;2.我们也可以将变量统一规范管理,不需要再接口一个个重复填写;3.当设置了用户自定义变量后,我们再取样器或者断言,都可以用过“${xxx}”来表示变量。例如:

    beanshell取样器或者断言


    String userId = "${userId_in}";

      

      接着写完变量后,我们添加一个Beanshell取样器,主要用来赋值。值得一提的是,使用取样器再控制器中是只执行一次,如果使用预处理器的话,是会执行一次或多次以上,这样会导致我们取随机值错误。取样器取随机值的写法也比较简单。(针对我这个项目,取得随机值)

    beanshell取样器

    int
    userId = (int)(Math.random()*100); int userId1 = (int)(Math.random()*100); vars.put("userId_in",""+userId); vars.put("userId1_in",""+userId1);

      当我们要使用json提取器的时候,我们要注意json的路径格式。例如

    json格式

    {
    "ex": null, "data": { "capital": "123456" } } 当我们取ex的值,应该写为 $.ex 当我们取capital的值,写为$.data.capital

      我们填完用户自定义变量和json提取器的值后,我们需要将定义变量的值填入接口,例如

       

        

       最后就是添加我们的beanshell断言,其实断言在主要体现在:

       Failure = false;

       FailureMessage ="xxxx";

         Failure = true;

        FailureMessage ="xxxx";

      附上本次接口自动化的简单断言结果:

      

    beanshell断言

    String inputUser = vars.get("inputUser"); String followUserId = vars.get("followUserId"); String userId = vars.get("userId_in"); String userId1 = vars.get("userId1_in"); if (inputUser.equals(userId1) && followUserId.equals(userId)){ Failure = false; FailureMessage = "接口与随机赋值一致"; log.info("inputUser"+inputUser+",userId1"+userId1+",followUserId"+followUserId+",userId"+userId); }else{ Failure = true; //log.info("inputUser"+inputUser+",userId1"+userId1+",followUserId"+followUserId+",userId"+userId); FailureMessage = "inputUser"+inputUser+ ",userId1"+userId1+",followUserId"+followUserId+",userId"+userId; }
  • 相关阅读:
    springMVC之配置
    compareTo(String str)与compareToIgnoreCase(String str)
    js中的json
    Java转json
    mxnet 豆瓣镜像源安装
    查看 tensorflow 是GPU版本 还是CPU版本
    nvidia-docker安装
    ubuntu下安装tensorflow-gpu版本过程
    CUDA, CUDNN 版本查询
    ubuntu版本查看命令
  • 原文地址:https://www.cnblogs.com/mumushizhige/p/13878218.html
Copyright © 2011-2022 走看看