iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Java如何编写接口测试
  • 572
分享到

Java如何编写接口测试

2023-06-05 00:06:44 572人浏览 安东尼
摘要

本文小编为大家详细介绍“Java如何编写接口测试”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何编写接口测试”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。接口测试接口:主要是子模块或者子系统间交互并相

本文小编为大家详细介绍“Java如何编写接口测试”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何编写接口测试”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

接口测试

接口:主要是子模块或者子系统间交互并相互作用的部分。

这里说的接口是广义的,客户端与后台服务间的协议;插件间通信的接口;模块间的接口;再小到一个类提供的方法;都可以理解为接口。因此,可以分析,系统间的接口包含三部分:输入、处理逻辑、输出。

接口测试:是指针对模块或系统间接口进行的测试。

应该怎么分析一个接口?

获取接口文档:和黑盒测试一样,我们是从需求文档中去挖掘测试点,设计测试用例。对于接口测试,同样是有对应的接口文档的。

分析接口文档,提取测试点:

1)输入: 接受哪些参数、参数的类型、可选参数和必选参数等;根据输入参数采用等价类、边界值分析法等进行设计;

2)业务逻辑:对于一个接口,不同的输入参数或组合,流程或状态的转移是不同,可以根据业务逻辑画出流程图或状态转移图,确保每种状态至少被访问了一次;

3)输出:根据文档规定的输出,反向设计测试数据,使所有的输出状态都被包含了;

测试用例:同时对输入、业务逻辑、输出进行考虑时,肯定会存在用例的冗余,在最大限度覆盖业务功能和规则下,选取最优用例集合。同时,需要考虑异常数据和场景。

怎么确定用例的覆盖率?

在没有特殊要求的情况下,至少需要考虑以下内容:

1)业务功能覆盖是否完整

2)业务规则覆盖是否完整

3)参数验证是否达到要求(边界、业务规则)

4)接口异常场景覆盖是否完整

如果接口需求还包含性能或者安全要求,还要对接口进行性能测试和安全测试,就需要考虑:性能指标是否满足要求、安全指标是否满足要求。

接口测试发现的典型问题

接口测试经常遇到的bug和问题,如下:

(1)传入参数处理不当,导致程序crash;

(2)类型溢出,导致数据读出和写入不一致;

(3)因对象权限未进行校验,可以访问其他用户敏感信息;

(4)状态处理不当,导致逻辑出现错乱;

(5)逻辑校验不完善,可利用漏洞获取非正当利益等。

如何编写接口测试用例?

创建接口测试用例:

/home/csg/pyrequest-master/interface/add_event_test.py

Java如何编写接口测试

Java如何编写接口测试

Java如何编写接口测试

对上述代码进行分析:

在接口测试之前,调用test_data.py文件中的init_data()方法,初始化数据库中的测试数据;

创建AddEventTest测试类,继承unittest.TestCase类;

创建测试用例,调用添加发布会接口,并验证接口返回的数据;

注意:

JSON格式的结果转化为字典赋值给self.result变量,加self的目的是在tearDown()方法中打印self.result变量,打印的结果可以在测试报告中显示,即将接口返回数据打印出来;

如果不使用self,又想在报告中显示每个接口返回数据,就只能是在每个用例中print出result,相比来说,还是第一种方法比较方便。

集成测试报告

当用例数量较多,就需要分类管理和执行,为解决这个问题,unittest单元测试框架提供了discover()方法,然后再适用htmlTestRunner生成HTML格式的测试报告。

创建/home/csg/pyrequest-master/interface/run_tests.py文件:

Java如何编写接口测试

对上述代码进行分析:

还是先调用test_data.py文件中的init_data()函数来初始化测试数据;

unittest框架提供的discover()方法查找interface目录下,匹配到文件名*_test.py结尾的测试文件;

now按一定格式生成当前时间;

将文件名命名为now当前时间_result.html并且保存report目录下;

HTMLTestRunner为unittest单元测试框架的扩展,利用它提供的HTMLTestRunner()类来代替unittest单元测试框架的TextTestRunner()类,运行discover中匹配到的测试用例,生成HTML格式的测试报告;

运行测试脚本:python run_tests.py:

可能需要安装configparser库,pip install configparser;

在运行过程中,出现了错误:

Java如何编写接口测试

应该是数据表里create_time字段需要一个默认值,于是修改test_data.py文件,给每个测试数据都增加create_time默认值为当前时间,再次运行就没有这个错误了; 

但是继续执行又出现了错误:

Java如何编写接口测试

问了下度娘,应该是读取文件的时候使用的是ASCII编码,而不是utf-8,自己多余,在每个测试用例的开头都增加了-*- coding:utf-8 -*-,画蛇添足了,去掉后再次运行就没这个错误了; 

但是运行结果全部是failed的,查看具体的error信息:

Java如何编写接口测试

原来还是要在每个测试数据前加上utf-8编码的声明,但是每个用例的注释信息不能是中文,奇怪了,没深入研究,反正都修改为英文后,再次运行成功了。

完整的自动化测试报告如下图所示:

Java如何编写接口测试

读到这里,这篇“Java如何编写接口测试”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Java如何编写接口测试

本文链接: https://www.lsjlt.com/news/240546.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何编写接口测试
    本文小编为大家详细介绍“Java如何编写接口测试”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何编写接口测试”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。接口测试接口:主要是子模块或者子系统间交互并相...
    99+
    2023-06-05
  • java如何编写测试类
    在Java中,编写测试类的一种常见方式是使用JUnit框架。下面是一个简单的示例:1. 首先,确保你的项目中已经添加了JUnit库。...
    99+
    2023-08-31
    java
  • java测试类如何编写
    编写Java测试类有以下几个步骤:1. 导入所需的测试框架:通常使用JUnit测试框架来编写Java测试类,需要在测试类的开头导入J...
    99+
    2023-08-17
    java
  • python怎么编写接口测试文档
    本篇内容主要讲解“python怎么编写接口测试文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么编写接口测试文档”吧!目录前言一、postman接口用例转换为python测试用例...
    99+
    2023-06-20
  • python编写的多线程接口并发测试
    import requests import json import threading import time import uuid class postrequests(): def __init__(self): ...
    99+
    2023-01-31
    多线程 接口 测试
  • 软件测试-接口测试-代码实现接口测试
    文章目录 1.request 1.1 request介绍 1.2 发送get请求 1.3 发送set请求 1.4 其...
    99+
    2023-09-06
    php json
  • java怎么编写接口
    在Java中,编写接口需要按照以下步骤进行: 使用关键字`interface`来声明接口,接口的名称应该以大写字母开头,并且应该具...
    99+
    2023-10-26
    java
  • python编写接口测试文档(以豆瓣搜索为例)
    目录前言一、postman接口用例转换为python测试用例二、转换为pytest测试用例三、封装POST和GET方法1.common.py—公共类封装2.具体接口测试用例总结前言 ...
    99+
    2024-04-02
  • java如何写https接口
    在java中利用POST方式编写一个https接口,具体方法如下:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamRead...
    99+
    2024-04-02
  • 如何在python中测试API接口
    这期内容当中小编将会给大家带来有关如何在python中测试API接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyt...
    99+
    2023-06-14
  • Linux如何测试udp端口连接
    在Linux上,你可以使用`netcat`命令来测试UDP端口的连接。以下是测试UDP端口连接的步骤:1. 打开终端(命令行界面)。...
    99+
    2023-10-11
    Linux
  • PostMan接口测试(很全面的接口测试教程)
    一:理论部分 1. 前言 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性。而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上,都无法及时完成功能模块的测试。 ​ 做...
    99+
    2023-09-16
    postman python 测试工具
  • 如何编写干净的集成测试
    “纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《如何编写干净的集成测试》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的...
    99+
    2024-04-04
  • 如何在 Go 中编写示例测试?
    从现在开始,我们要努力学习啦!今天我给大家带来《如何在 Go 中编写示例测试?》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言...
    99+
    2024-04-04
  • springboot vue接口测试定义编辑功能如何实现
    本文小编为大家详细介绍“springboot vue接口测试定义编辑功能如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“springboot vue接口测试定义编辑功能如何实现”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-06-30
  • python接口测试(三)
    引入unittest框架get请求#coding: utf-8 import unittest import requests import json class TestGet(unittest.TestCase):     def s...
    99+
    2023-01-31
    接口 测试 python
  • 如何利用python进行接口测试
    这篇文章主要讲解了“如何利用python进行接口测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用python进行接口测试”吧!接口测试的坑第一个坑:POST 和 GET----GE...
    99+
    2023-06-30
  • python测试dubbo接口
    本文主要介绍使用Python调用Hession协议dubbo接口示例。 关于Dubbo Hession协议: Dubbo本身支持多种远程调用方式,例如Dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进...
    99+
    2023-01-31
    接口 测试 python
  • python接口测试(一)
    基于Jenkins接口测试# coding = utf-8 import httplib http_client = None http_client = httplib.HTTPConnection('localhost' , 808...
    99+
    2023-01-31
    接口 测试 python
  • 如何选择测试微信域名检测接口
    本篇内容介绍了“如何选择测试微信域名检测接口”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!需求微信营销最容易出现的情况就是域名被拦截,有时候...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作