• 9
  • 9
分享

接口测试需要考虑的点/如何设计接口测试的用例?

接口测试用例编写除了使用功能测试中最基本的等价类,边界值,因果图,错误推测,场景设计等方法外,还要考虑一些其他方面,首先我们要先进行冒烟测试,说白了就是传递正确的参数查看是否返回正确的结果然后还要考虑参数组合:因为参数有必填和非必填,参数的格式、长度,以及数据传输的业务流程中的一些限制,我们要考虑不同的参数组合的情况,以保证能够覆盖到所有的情况以及绕过验证、权限验证、参数是否加密

最重要的是要考虑业务逻辑校验,请求的类型、格式,地址、参数,以及数据库的落地情况(比如测试新增更新的接口时,要看数据的返回是否完整,与数据库进行对比)。

你做过接口测试吗,怎么进行测试的?

做过接口测试,一般我们都是使用jmeter工具来进行接口测试,首先在测试计划中添加一个线程组,然后在线程组中添加一个HTTP请求,然后通过抓包获取接口网址,然后将IP,端口号,路径,请求方式,以及相应的参数手动添加到HTTP请求中,然后在线程组里再建一个察看结果树来查看执行结果。也可以添加一些断言来判断返回结果。然后我们执行HTTP请求,在察看结果树里验证返回内容、格式等是否符合接口文档。

同时我们也可以使用CSV控件来实现小型的接口自动 化来提高接口测试效率。在CSV中添加本地Text的文件路径,TEXT文件中主要包含测试用例的内容及每条测试用例的预期结果,每行包含一条用例,我们需要给用例中的每项内容起一个变量名,配置完毕就可以使用${变量名}来调用了,然后添加响应断言,也是使用${}来调用CSV中的预期结果,最后将线程组中的线程数改一下,这样就可以执行多条用例了,大概就这样。

如何测试相互依赖的两个接口?

首先我们在线程组中添加两个HTTP请求,然后在第一个接口下添加一个正则表达式提取器,然后把我们需要提取的参数使用(.+?)()代表封装了待返回的匹配字符.代表匹配任何字符,+代表匹配一次或多次?代表不要台贪婪,匹配到第一个符合的字符后停止

如何测一个需要登录的接口?

先在网页上登录,然后通过开发人员工具获取登录的cookie参数,然后在使用的时候在HTTP请求前添加HTTP cookie管理器,直接将cookie的参数手动添加到 HTTP cookie管理器中就可以了

结合工具说下你们怎么批量进行接口测试的?

批量进行接口测试我们是通过jmeter中的CSV控件来实现的,首先我们在本地建一个text文件,然后将用例及预期结果添加到文件中,然后在线程组中添加CSV控件,在控件中配置用例每项对应的变量名,然后再添加HTTP请求以及响应断言,通过${}来调用CSV中的变量,最后再把线程组中的线程数调为我们执行用例的数量就可以了。

如何处理cookie和session的?

一种是在录制脚本的时候添加HTTP cookie管理器获取cookie,还有一种就是手动添加cookie的参数到HTTP cookie管理器中

jmeter如何录制脚本?

首先,我们测试计划中添加一个线程组,线程组中添加cookie管理器(如果需要登录的话),然后将浏览器设置好代理,在jmeter控制台添加一个HTTP代理服务器,端口号设置为与浏览器代理端口号一致,把目标控制器选择测试计划线程组,启动HTTP代理服务器,我们在浏览器的操作就可以录制了。

get和post的区别?

get和post本质上都是TCP连接并无区别,由于HTTP协议规定以及浏览器的限制导致在应用过程中有一些不同。

get请求类型主要用于直接获取数据比如查询,搜索,读取。post请求类型需要逻辑处理比如支付、登录、注册。

get请求的参数是附在URL之后,post请求的参数是放在请求体中

get请求有长度限制,一般不超过4KB,post请求理论上没有限制,限制的是服务器处理数据的能力

get请求的数据在URL后可以通过浏览器的地址栏看到,不安全,post请求相对来说比较安全,但是如果post请求不对隐私数据进行加密也是不安全的

get请求的参数会保存在浏览器历史记录上,而post请求的参数不会保留。

对于get请求而言,浏览器会直接把HTTP、header和请求参数一起发送给服务器,而post是浏览器先发送header,服务器响应100后,浏览器再发送请求数据,然后服务器再返回结果。

jmeter用户自定义变量和HTTP请求默认值的作用?

对于一些经常变动又频繁调用的数据,我们一般存放在用户自定义变量中,使用的时候直接使用${变量名}进行调用,而对于一些默认的参数如网址,端口路径等,我们存放在HTTP请求默认值中,如果需要使用,在HTTP请求中那项置空就可以了

如何测试上传图片的接口?

首先我们需要先将上传图片的接口通过jmeter抓到,然后在HTTP请求中输入相关的参数,在下方的files upload中添加图片的本地完整路径及图片的格式就可以上传图片了。

如何测试https的接口?

测试HTTPS的接口我们将HTTP请求中的端口改为443,协议为HTTPS就可以了

jmeter如何过滤?

Jmeter中的HTTP代理服务器中有jmeter的过滤模块,我们把需要过滤的参数放在过滤模式里面就可以了。

什么样的接口是get,什么样的是post?

Get接口比如查询,搜索,读取。post请求比如订单,交易,登录等

你都用过什么断言?

我用过jmeter的响应断言

jmeter你都用过哪些控制器?

循环控制器,计数器

什么是http协议?

HTTP是超文本传输协议,是浏览器在数据传输时必须遵循的协议。它可以将超文本标记语言文档从客户端传输到服务器。

jmeter如何连接数据库?

首先我们需要在测试计划中添加MySQL的配置jar包,然后在测试计划中添加线程组,线程组中添加JDBC connection configration去进行数据库的配置,有数据库连接池,mysql驱动,以及MySQL的账号密码。然后再添加一个JDBC request 输入查询语句进行查询添加一个察看结果树查看结果就可以了。

jmeter如何获取数据库中的数据?

首先我们先将MySQL的连接配置好,然后在JDBCrequest中输入查询语句查询出相应的字段名及字段值,然后给查询的内容重命名,调用的时候使用${变量名_第几行的数据}就可以了。

如何进行参数化?

使用${变量名}进行参数化

什么是接口测试?

接口测试是测试系统组件之间数据传输的一种测试,主要检测系统与系统之间或系统与 内部组件之间的数据正确性。

接口测试的原理是什么?

接口测试的原理就是模拟客户端向服务器发出请求,服务器接收请求之后,对请求做出 处理并把响应结果返回给客户端。

接口文档包含哪些内容?

(1)请求地址

(2)请求方式

(3)请求参数

(4)参数详解(每个参数代表什么意思,如果没有详解就去问开发)

(5)响应结果

(6)结果详解(响应结果中每个参数所代表的意思)

常见的接口协议类型有什么?

最常见的是http接口和https接口,除此之外还有webservice接口、dubbo接口等。

常见的接口测试工具

Jmeter(开源的,接口/性能)、postman、soap UI、load runner(接口/性能)

典型接口的例子:

(1)物流订单信息,一般物流信息都是通过各大物流公司的接口获取到的

(2)通过携程等APP订不同航空公司的机票,机票信息一般都是通过各大航空公司的接获取到的。

(3)12306订票支付的时候,使用微信、支付宝、银行卡支付都是调用的接口

(4)软件实名认证时验证姓名身份证号是否匹配就是调用公安系统的接口

(5)绑卡时需要输入姓名身份证号银行卡号也是调用的银行系统的接口。

什么时候开始接口测试?

一般情况下在单元测试之后,进行集成测试的时候我们进行接口测试,或者在功能测试之前我们会进行接口测试。

一般问有没有做过集成测试,可以理解为有没有做过接口测试

为什么要进行接口测试

(1)现在很多系统都是前后端分离的,从安全层面上来说,只依赖前端进行限制已经完全 不能满足安全需求,因为绕前端太容易了,这种情况下我们需要去测试接口。

(2)因为接口中传输的是数据,所以我们要测试数据的正确性

(3)接口测试能够覆盖功能测试覆盖不到的点,而且接口测试效率更快,覆盖相对更全面, 结合功能测试能够更好的提高测试覆盖率。

接口测试的流程:

(1)首先我们要了解需求,熟悉业务场景

(2)然后根据需求文档,接口文档以及业务场景来编写测试用例。

(3)再进行测试用例的评审,征求开发、测试、产品的意见对用例进行完善

(4)再然后准备测试数据,测试工具以及测试用例

(5)最后执行接口测试,提交bug并验证bug测试完毕后发送测试报告并确定是否能上线

如果没有接口文档我们如何去测试接口?

我们会通过抓包,先把这个接口的信息抓到然后再去测试这个接口

 

作者:佚名

原文链接:http://www.netearn.top/rainNight/detail/225

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 测试报告是测试人员在测试过程中用于反映测试状况的文档,其重要性通过网上哀求、跪求、旋转360度冰天雪地各种求测试报告模块的帖子中就可见一斑。其实测试报告的内容基本都是模板的那些,只是在实际测试过程中,如何去整理内容结构,使得报告的通常阅读者:开发人员、测试经理、产品经理、项目负责人能够一目了然地查看想要了解的内容才是测试报告最值得注意的地方。产品要想有广阔的市场,得需要切实了解用户的需求及感受,同理测试报告要想能够让阅读者能够满意,也需要能将质量情况条理性地列出。通常来说,开发人员往往希望能从报告中了解缺陷的情况,而测试经理还关心用例的执行情况及覆盖率、项目责任人则最关心还有多少问题,此次版本...
            14 14 1659
            分享
          • 管理的定义在我理解,管理,是管理者带领一群人一起完成一个共同目标的过程。在这个过程中,如何将团体目标最好的完成,如何将团体与个人的利益进行有效的协调,如何将团体中的每个人的价值最大化,都是作为管理者需要去思考的。管理的内容带领,就是要在团队中发挥带领者的角色。一个好的管理者,会和团队一起冲锋陷阵,在完成目标的路上身先士卒,以身作则,不畏惧不退缩。有困难,他会和团队一起并肩面对;有问题,他会首先反思其中的原因;有疑问,他会和团队分享自己的不解;有想法,他会开诚布公畅所欲言。带领团队的过程中,有被质疑时独当一面,不会将责任甩给团队;和其他团队合作遇到阻碍时,敢于站在团队前面,而不是如缩头乌龟一般让...
            1 2 2363
            分享
          •        此文讲述了我和腾讯蜜汁缘分。       我在腾讯截至投递简历的前十几分钟填完了简历,以至于我报错岗位了。我想去的是测试开发,却报成了软件测试。       紧接着,我收到了笔试通知。在笔试的模拟测试中,共有2种类型的题目:不定项选择题26分,填空题24分。囊括的知识点很广,有linux,操作系统(页面替换题,进程线程),数据结构,计算机网络。       在正式笔试的时候,考的跟模拟题完全不一样!可能因为我是软件测试而不...
            0 0 2191
            分享
          •   1 引言  伴随着时代的不断发展,汽车由最开始的奢侈品逐渐发展成为现在家家户户普遍使用的交通工具,已经成为了人们日常生活中不可缺少的代步工具,并且在各行各业的发展过程中也得到了有效的应用,在一定程度上为行业的发展提供了帮助。虽然汽车的出现为人们的生活与行业的发展带来了极大便利,但是随着汽车数量的不断增长,汽车排放的尾气对环境造成的污染不容小觑,甚至严重的污染了空气,对人们的身体健康产生了影响,因此,要采取一定的措施减少汽车尾气对环境的污染。伴随着科技水平的不断进步,新能源汽车出现在人们的视野中,新能源汽车有着先进的底盘技术,能够有效减少尾气的排放,大大降低汽车对环境的污染,不仅能够为人们的...
            0 0 847
            分享
          • 首先要理解为什么要进行批量测试,当我们在工作中进行接口测试时,项目的接口肯定不止一个,而是很多很多,而且每个接口都需要进行正确参数,错误参数,参数为空,特殊字符等方式来测试接口是否能够正确返回所需的响应值。在编写脚本之前可以先汉化JMeter,找到JMeter解压/安装路径下的JMeter.properties,用编辑器打开(右键用记事本打开也可以):找到  #language=en  ,在下面添加:language=zh_CN 并重启JMeter那么我们该如何通过JMeter来完成批量测试呢? 我们先建立一个较为简单的方式进行测试脚本观察一下。以去获取创建订单时的【省/市...
            14 14 4117
            分享
      • 51testing软件测试圈微信