接口自动化测试第一步

来源:互联网 发布:阿里云香港主机 编辑:程序博客网 时间:2024/05/22 05:54

考虑到新员工编程水平与接口文档规范程度,目前接口测试采用jmeter的方式实现。由于接口很多,目前尚只能实现部分手工活的替代,再慢慢做进一步的优化

分析接口

  • 接口目前全部是HTTP协议
  • 无参数,有查询字段
  • 定义了多个响应码

根据接口定义编写数据库查询语句

  • 查询字段值的获取

    对应数据库字典,对各查询字段取值评估,设计测试用例。

  • 预期结果的定义

    各测试用例中,不同的查询字段取值得到的查询结果不一样

    • 对于正常值,接口返回信息需要根据查询字段值到数据库中查找
    • 对于非正常值的返回信息可以预估,并将预估结果放在数据库中

编写jmeter脚本

Created with Raphaël 2.1.0DBDBjmeterjmeterserverserver随机查询字段值接口返回值answer_api预期的返回值answer_DBanswer_api=answer_DB?

获取随机的查询字段值

jmeter中使用JDBC preProcessor,根据测试用例从数据库中查询可选值,将随机选取的值保存在jmeter变量中。

使用随机查询字段值发出请求

  • jmeter中使用HTTP Request发出请求,并将对应的查询字段值替换为JDBC preProcessor中获取的值
  • jmeter获取到接口值有判断作用的部分用正则提取出来,保存在jmeter变量中。

定义预期的接口返回结果并预先放在数据库中

  • 如果是正常的测试用例,可以根据接口说明自定义SQL查询语句,使用上面得到的随机查询字段值访问数据库得到正确的返回值。
  • 如果是非正常的测试用例,可以预先判断服务器的响应:响应码为400或500,返回值为[]、NULL、0、…

比较预期返回值与接口返回值

  • 简单数值比较可以使用jmeter中的beanshell中的if函数实现;复杂结果集可以编写java程序,在beanshell中调用

  • 如果返回非预期值,通过Failure和FailureMessage两个jmeter内置参数保存错误信息。集成到jenkins之后,该信息可以在报告中显示。

Failure=true ;    FailureMessage ="Response is  ${answer_api},but database returns ${answer_DB}"  ;

集成到jenkins中

  • jenkins中使用ant作为构建工具,实现以下操作:
    • 在指定文件夹下查找jmx文件,并运行
    • 将jmeter执行报告转换成html格式
    • 将测试报告地址与测试结果保存到数据库中
  • 借用jenkins邮件通知功能,报告测试结果
0 0