接口测试面试题—第二版

  • 接口的加密测试中对称加密与非对称加密有什么区别? 如何开展测试?
    • 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是一样的密钥(secret key),这种方法在密码学中叫作对称加密算法。
    • 非对称加密为数据的加密与解密提供了一个很是安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则能够发给任何请求它的人。
  • 请详细阐述接口测试和UI测试在测试活动中是如何协同测试的
    • 接口测试和UI测试这两块实际上是有一部分是重叠的,UI测试是经过前端写的界面,来调用接口,而接口测试是直接调接口。因此排除前端的处理的逻辑和调用的正确性,在理论上接口测试是能够覆盖全部的UI测试。但实际过程当中,若是只是在接口层覆盖全部的业务流,在UI上只测试前端的逻辑,最终的结果可能会是忽视不少原有的功能点,致使了UI测试的不充分。因此存在多人分工且时间充分的时候能够尝试接口去作业务流的全覆盖,不然不要轻易尝试。
  • 在手工接口测试或者自动化接口测试的过程当中,上下游接口有数据依赖如何处理?
    • 在工具中可使用全局变量等方式将须要的数据进行传送。
    • 依赖于第三方数据的接口如何进行测试
    • 可使用SoapUI等工具直接调用第三方数据接口的webservice,经过返回值来查看第三方数据的接口是否调用正常。
    • 也能够利用一些MOCK的工具来模拟第三方的数据返回,最大限度的下降对第三方数据接口的依赖
    • mock主要用来开发须要依赖一部分接口,但对方没有提供环境状况下
    • 能够利用一些MOCK工具(如:JSON Server、Easy Mock)来模拟第三方的数据返回,最大限度的下降对第三方数据接口的依赖http://www.javashuo.com/article/p-pvpjpnff-bu.html
  • 接口测试中依赖登陆状态的接口如何测试?
    • 依赖登陆状态的接口的本质上是在每次发送请求时须要带上session与Cookie才能发送成功,在构建POST请求时添加必要的session,Cookie(添加cookie)
  • http接口测试和web Service接口测试区别是什么
    • 区别是有的。主要是传统ws有一套完整的协议标准。其中有soap协议,用来进行消息的传递。以传统工业标准的ws返回数据为例,返回结果须要包装在一个soap协议指定的语法格式中。即便你只须要简单的返回字符1,也须要包装在协议种返回,协议描述了成功失败否,结果值等。而普通的get,你输出1,在调用端获得字符1。
    • web service和http接口的区别在于:
    • 1.接口中实现的方法和要求参数一目了然
    • 2.不用担忧大小写问题。
    • 3.不用担忧中文 urlencode 问题。
    • 4.代码中不用屡次声明认证(帐号,密码)参数。
    • 5.传递参数能够为数组,对象等。
  • 设计接口测试用例例时,涉及的是电商系统,其中包括不少修改,如商品、商家、店铺等等,针对这些数据的修改,会涉及到不少参数。如商品的名称,商品的尺码,商品的颜色等等。那在设计实现“修改”接⼝口时,如何肯定要传哪些参数?是只须要传我要修改的参数,仍是所有参数都要传?
    • 关键仍是看后台逻辑实现。
    • 举例:User有两个属性username,password
    • 后台逻辑实现:update User set username=? where id=xxx;
    • 那,若是你只想更新username的时候,能够不传password,其值是保持不变的。
    • 后台逻辑实现:udpate User set username=?,password=? where id=xxx;
    • 这种状况下,即便你只想更新username,也须要传password的值给后台,否则password就会被更新为空。
    • 此外,还有一些数据如id等,若是sql中没有写,那即便传递了本字段的参数,数据库也不会更新。所以,在写关于“修改”的接口时,须要考虑一下,后台的逻辑是怎么实现的,而后确认要传递哪些参数。
  •  目前接口文档是由word格式管理理,因迭代快,产生不少文档,分不不清哪些是不用的接口,哪些是正在用的接口,哪些是更新后的接口,文档杂乱,另外因是word格式管理,不方便查询,如何管理?每次查看接口文档须要下载多个word,不能避免下载操做查看,效率不高,如何提升工做效率?
    •  目前接口文档是由word格式管理理,因迭代快,产生不少文档,分不不清哪些是不用的接口,哪些是正在用的接口,哪些是更新后的接口,文档杂乱,另外因是word格式管理,不方便查询,如何管理?每次查看接口文档须要下载多个word,不能避免下载操做查看,效率不高,如何提升工做效率?
  • 接口测试用例编写要点:
    • * 测试每一个参数类型不合法的状况(类型不合法容易遗漏NULL型)
    • * 测试每一个参数取值范围不合法的状况
    • * 测试参数为空的状况
    • * 测试参数先后台定义的一致性
    • * 测试每一个参数的上下限(这里容易出致命的BUG,若是程序处理不当,可能致使崩溃)
    • * 若是两个请求有严格的前后顺序,须要测试调转顺序的状况
    • 必填字段:请求参数必填项、可选项
    • 合法性:输入输出合法、非法参数
    • 边界:请求参数边界值等
    • 容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
    • 响应数据校验:断言、数据提取传递到下一级接口...
    • 逻辑校验:如两个请求的接口有严格的前后顺序,须要测试调转顺序的状况
    • 性能:对接口模拟并发测试,逐步加压,分析瓶颈点
    • 安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)
  • 接口测试步骤
    • 请求接口
    • 获取请求参数
    • 设置断言assert:查看实际结果与预期结果是否相同
  • 简单讲解一个软件接口测试实例讲解(post)
    • 下载客户端比较方便
    • 填写一个get或post接口请求须要设置:请求头,请求方法,请求体(请求参数)
    • 填写请求,头部参数
    • tests添加断言
    • .Save as保存
    • 4.建立collection(汇集、集合)
    • 5.左侧点击collection-RUN
    • 6.点击start test 右侧能够看到运行结果
    • 7.命令行运行集合(先保存,后安装newman)
  • 接口流程
    • 基本的接口功能自动化测试流程为:需求分析-->用例设计-->脚本开发-->测试执行-->结果分析
  • get与post区别
    • get向服务端请求数据,获取数据,如咱们电商平台的查看商详页面,查看评论
    • post向服务端发送请求主要是提交修改数据,如上传图片,登陆,发布评论等
    • GET/POST均可以提交数据,GET请求也能够向服务器传递数据,POST请求也须要服务器返回数据
  • http请求都有哪些
    • 经常使用的有4种get 查询字符串参数,post 请求体参数,delete,put
  • 如何从上一个接口获取相关的响应数据传递到下一个接
    • 从上个接口中获取到下个接口须要的返回值( 使用正则表达式or使用JSON解析来提取须要获取的值),作变量下个接口直接引用变量、
  • 在执行Android终端自动化测试过程,须要查看详细日志以及时间,须要执行ADB什么命令和参数?
    • adb logcat -v time   查看日志时间
    • adb logcat -v raw     查看日志详细信息
    • adb logcat | findstr xxxxx  过滤日志信息
  • 请简单介绍一下实用过的安卓UI自动化测试工具?
    • appium:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的
相关文章
相关标签/搜索