接口自动化之测试用例设计(一)

JMeter第一阶段打卡结束之后,大家可以拿公司的接口试试手,完成接口测试。

有个很重要的点要注意:JMeter只是执行用例或者是产生压力的工具。至于用例怎么写,产生多少的压力,还是要看使用者的。

  • 举个例子:就像一把菜刀,在大厨手里,可以花式雕刻,什么菜对应什么刀工,炒土豆丝就是土豆丝,炖土豆块就是土豆块;但是,同样的一把刀,到我们(我)手里,切出来的就是土豆条。
  • 工具,就是工具,主要还是看用的那个人怎么用。

1.什么是接口?

接口

代码里的话,一个接口其实就是一个函数,像下面这样的两个接口

//基于Python+flask

from flask import Flask
app = Flask(__name__)

@app.route('/')#接口为 /
def hello_world():
    return 'Hello, World!' #返回Hello, World

@app.route('/login', methods=['POST', 'GET'])#接口为login,请求方法为:post,get
def login():
    error = None
    if request.method == 'POST':
        if valid_login(request.form['username'],
                       request.form['password']):
            return log_the_user_in(request.form['username'])
        else:
            error = 'Invalid username/password'
 
    return render_template('login.html', error=error)
    
if __name__ == '__main__':
    app.run("127.0.0.1")

2.针对输入参数

对于接口来说,输入就是入参。常见参数类型有:数值,字符串,数组,多维数组等

2.1数值

  • 等价类

在编写功能用例的时候,等价类是十分常用的一种方法,这个"价",不知道大家怎么理解?

1. int
2. float
3. double
  • 边界值
  • 遍历
  • 可能存在的问题
1.传入非特定类型程序异常退出
2.超长字符没有进行异常处理,导致存储,显示等异常
3.其他用户可见的敏感数据

2.2 字符串

  • 等价类
1. String
2. ....
  • 边界值
  • 遍历

2.3 数组

  • 个数
例如:权限以数组存储,数组上限30,但是有第31个权限
  • 内容
1.数组内容异常处理
2.重复的元素
3.元素为0
  • 可能导致的异常
1.元素个数为0,异常退出
2.重复数据没处理,结果异常

2.4多维数组

经常会遇到数组嵌套,JSON串嵌套的情况,一层一层测试

3.针对输出结果

  • 针对输出结果设计测试,其实就是针对接口返回的结果进行分析测试。

3.1 业务结果

这个就根据具体的业务,具体分析输出结果,然后进行写用例

3.2 错误处理

  • 错误码
  • 错误异常返回结果有很多情况很多值,根据返回的错误码和错误类型进行比对,根据业务需要设计测试用例
  • 异常处理
    我们不一定能够覆盖所有的错误码,所以常见的问题就是:
  • 1.错误处理不足,导致前端异常
    
  • 2.错误提示处理不当,导致用户看到错误码。(什么SQL异常,error等)
    
  • 3.错误提示不当,用户看了提示不知道哪里出了问题,怎么解决
    

4.针对接口逻辑

针对接口逻辑,也就是场景型接口。

4.1 数值限制

例如:电商类设计了一个活动,用户积分800分的用户可以参与。那么,活动的一些接口就有了一个800分的限制

4.2 状态限制

例如:电商类产品,用户登录之后才可以购买商品。那么,下单的一些接口就有了一个用户登录限制

4.3 权限限制

例如:一些OA类产品,管理员对应的权限操作,普通用户对应的操作,业务流程对应的操作等,那么,这些接口就有了一个对应的权限限制

5. 针对接口超时

  • 没有进行超时处理,整个流程阻塞
  • 超时后,又收到接口返回,导致逻辑出现错乱

6.针对废弃接口

  • 因为需求变更,暂时不用,没有及时删除
  • 新老版本更替,废弃接口没有检查,对应服务没有更新

7.针对接口合理性

  • 字段冗余
具体业务,具体分析
  • 接口冗余
例如:删除单个,和多选删除
单个删除是不是多选删除为1的情况?
  • 接口命名
  •   有没有发现捞日志的时候,看了半天接口名,不知道这个接口干嘛用的
    
设计接口用例
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。