编程测试相关整理(初)

什么是接口测试

接口测试是测试系统组件间接口的一种测试.

1.作用

主要用于检测外部系统与系统之间以及内部各个系统之间的交互点,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统的相互逻辑依赖关系等.

2.有哪些接口

(1) Webservice接口

走soap协议通过http传输,请求报文和返回报文都是xml格式,测试通过工具soapUI进行测试.

(2) HTTP api接口

走http传输协议,通过路径来区分调用的方法,最常用的是get和post请求.  请求报文都是 key-value字典形式的,返回报文一般都是json串.  

3.接口测试的目的

(1) 通过测试,暴露问题
(2) 保证系统的正确和稳定性(以持续集成为手段)
(3)提高测试效率,降低产品维护成本

4.如何进行接口测试

可以从以下几个角度进行验证:

  • 输入参数分析
  • 接口逻辑分析
  • 输出分析
1) 参数详解
  • 参数类型(1) ----数值型(int,float,double等)
    运用等价类,边界值,特殊数值(-1,0),数值类型最大值范围进行数值录入验证.

  • 参数类型(2) ----字符串类型
    运用等价类,边界值,特殊字符,敏感字符,超长字符,空等进行录入验证.

  • 参数类型(3) ----日期类型
    输入正常日期,非法日期,输入非日期格式字符

  • 参数类型(4) ----数组或链表
    运用等价类,边界值,合法成员,非法成员,重复id等输入验证

  • 参数类型(5) ----参数安全性输入验证
    sql注入,XSS攻击,越权访问等

验证方法

  • 测试传递正确的参数,返回结果是否正确
  • 参数组合,通过排列组合,或者正则分析用例设计方法,得出组合参数,验证返回结果
  • 异常参数传递,测试接口对异常处理是否正确
2)接口业务逻辑分析详解
  • 约束条件分析
    比如: 已完成的问题不能修改
  • 操作对象分析
    比如: 无权限的用户不能越界操作等
  • 状态转换分析
    比如: 已通过状态的问题不能回退到待整改问题
  • 时序分析
    比如:
    1.用户必须有效登录才能上传数据
    2.新增问题上传,必须先 问题主记录上传,才能上传问题抄送人记录,不能跳过主记录就能上传从表记录(具体业务逻辑)

概括来说: 就是通过分析,得出需要验证的场景,验证接口逻辑处理是否正确

3)输出结果分析详解

接口处理正确的结果可能只有一个,但是错误异常返回结果有很多情况,很多值.
如果知道返回结果有很多种,就可以针对不同结果分别进行验证.

5.接口测试的实现过程

  • 手动测试
    (1)拿到接口定义文档
    (2)编写接口测试用例
    (3)准备接口测试
    (4) 执行测试

  • 自动化测试
    (1)拿到接口定义文档
    (2)编写接口场景用例
    (3)根据用例编写脚本
    (4) 准备测试数据
    (5) 持续集成测试(jenkins)

6.接口测试的工具

  • 手工测试

    介入时间: 接口手工测试不依赖于界面,接口开发完便可以测试.
    使用工具:手工测试一般使用fiddler,postman(谷歌浏览器工具),RESTClient,jmeter等工具测试.

    ps:推荐使用postman工具,使用简单,有各种记录留存,方便回溯,个性化设置(如各种url地址,参数等)
    
  • 自动化测试

    介入时间:自动化测试一般是等接口稳定以后,对接口主流程场景进行脚本化,现在做法是在每个迭代完成以后进行接口脚本补充.

    使用工具: jmeter,postman,RFS+ReqyestsLibrary,Python+unitest+Request测试.

     ps:以上工具各有优劣,meter,postman断言功能不够强大,RFS框架安装复杂,但封装的类库比较丰富,用例组织比较清晰. Python+unitest需要编写脚本代码,要有代码基础,学习成本比较高.
    

关于在测试过程中用到的测试用例,请参考我的另一篇测试用例的文章,
<>
这里可以详细了解测试用例的一些知识点.

结尾

写于11/22日质检组测试帅哥-红灵分享会

你可能感兴趣的:(编程测试相关整理(初))