美文网首页
API自动化测试

API自动化测试

作者: 冥冥_ddb0 | 来源:发表于2019-09-25 16:37 被阅读0次

    声明: 一切内容都是针对自己,如果发现文中有不对的地方,欢迎留言指教或讨论,勿喷。

    写在前面

    项目是一个API项目,刚上的时候,发现组里只有契约测试,没有自动化测试来覆盖基本功能测试,怎么做regression呢,又集合项目之前用JMeter做过性能测试,所以就直接使用JMeter来做功能自动化了,使用了一段时间后,痛点慢慢显现。

    痛点

    1. JMeter有GUI,可以用它的客户端来组织自己的用例,保存后,会自动生成.jmx文件以供命令行运行,但.jmx太晦涩,不好修改,在提PR的时候,也不容易看出来哪里有改动,这个时候就会觉得有点笨重。
    2. 虽然可以使用csv等文件统一组织用例,但需要同时用JMeter打开jmx文件再用个文本编辑器打开csv。
    3. 使用JSR223在校验Assertion的时候比较局限,debug很不方便,只能打log。
    4. 生成的report是从性能方面显示结果的,但是支持自定义report格式。
      5.怎么筛选一个用例是否可以在某一个环境上运行,比如,在test上或release上的回归用例比较多,而在Staging或PROD上,由于测试数据的局限,用例比较少。

    结论:

    老老实实用JMeter做性能测试吧

    问题:

    需要寻找一个合适的API接口功能自动化的工具?

    Actions:

    尝试以下工具,

    1. REST-assured
      基于Java的DSL,详细阅读了它的Usage Guid, 看到这张图的时候,已经知道这就是我想要的功能了:
      REST-assured
    2. karate
      开源工具,类似上边的REST-assured,也是基于java的,也支持BDD的方式,Karate vs REST-assured,这里有两者的对比,可以自由比对response的内容。
      Report: 基于feature文件的report,看起来很方便
      [图片上传失败...(image-f337c5-1569319909953)]
      Hook: 可以用tag的annotation来区分case,在不同环境运行测试,如dev,test或者是staging之类。
      Pipeline运行:
    mvn test -Dtest=SampleTest#testTags
    
    1. Airborne
      基于Ruby语言,对于返回的response可以灵活校验。
      校验.png
      pipeline运行: rspec spec
      可以通过加x来Ignore暂时不需要的case。
    1. pyresttest
      基于Python,编辑yaml文件,不习惯。

    2. apiscience
      高级的API监控工具。

    3. unirest
      是一个轻量的小工具,很开心找到了一个支持.NET的,github查了下比较尴尬,放弃。

    总结

    对比了几个工具,不想继续找下去了,综合看来#2目前最棒,决定试用,稍后有试用贴给大家分享。

    相关文章

      网友评论

          本文标题:API自动化测试

          本文链接:https://www.haomeiwen.com/subject/ulmjuctx.html