自动化接口测试-01

发布时间 2023-05-01 05:17:02作者: 萍水测试

一、为什么要进行软件接口测试?

  接口是通过遵守某种约定的协议(目前最常用的是http协议),服务端提供给客户端调用的某种服务。随着服务端架构越来越复杂,从单体架构、分布式架构,演变至如今流行的微服务架构,软件接口测试也变得越来越重要。

二、软件接口测试与功能测试的区别?

  首先接口测试和功能测试介入的时机不同,一般情况接口测试是在单元测试之后展开,而功能测试是在前后端联调通过,接口测试完成后进行。其次,接口测试是根据接口协议,并结合接口参数设计测试用例与执行,侧重验证返回数据的准确性;功能测试主要是围绕页面功能点进行测试用例的设计与执行,从页面的反馈层面验证,侧重验证页面功能逻辑实现的准确性。

三、使用postman进行接口测试

  1、发送get请求(不带参数)

   2、发送get请求(url地址中带参数)

   3、发送get请求(带参数及参数值)

   4、发送post请求(form数据格式)

   5、发送post请求(json数据格式)

   6、请求的后置处理(提取登录后的token信息)

   7、设置变量

 

四、Excel接口测试用例访问

  1、安装python第三方插件pandas,可以很方便地读取Excel中存储中的测试用例。安装命令:pip install pandas

   (1)读取数据

  (2)解析某单元格中的数据

 

 五、MySQL数据库接口测试用例的访问(使用pandas)

 

五、PyTest自动化测试框架

  1、首先安装pytest:pip install pytest,pytest实现参数化,pytest.mark.parametrize的第二个参数要是可迭代的对象。

  2、测试用例的组织管理,pytest.mark.first与pytest.mark.run(order=1)不要混用,同理pytest.mark.last与pytest.mark.run(order=-1)也是一样不能同时用。

  3、pytest的前置和后置操作

   4、pytest的fixture运用,一个fixture可以返回多个值,一个方法也可以同时调用多个fixture。

   5、pytest中fixture的作用域与自动运行。当我们使用fixture时,把scope的值设置为class时,每一个测试类之前都会被运行。pytest在每个测试函数的外层自动会把函数包装成一个测试类,所以每个函数运行时,这个scope=class的fixture都会被运行。

   6、fixture实现参数化

  7、contest统一配置,写在文件中的fixture可配任一测试函数调用。

 

六、allure自动生成测试报告

  • 下载allure:https://github.com/allure-framework/allure2/releases
  • 安装java运行环境,配置环境变量
  • 安装python的allure支持库:pip install allure-pytest
  • 运行:
    if __name__ == "__main__":
    pytest.main(["-vs", "--alluredir", "./result"])
    os.system("allure generate ./result -o ./report_allure --clean")
  • 打开测试报告命令:allure open ./report_allure