接口测试面试题—第二版

  • 接口的加密测试中对称加密与非对称加密有什么区别? 如何开展测试?
    • 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。
    • 非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。
  • 请详细阐述接口测试和UI测试在测试活动中是如何协同测试的
    • 接口测试和UI测试这两块其实是有一部分是重叠的,UI测试是通过前端写的界面,来调用接口,而接口测试是直接调接口。所以排除前端的处理的逻辑和调用的正确性,在理论上接口测试是可以覆盖所有的UI测试。但实际过程中,如果只是在接口层覆盖所有的业务流,在UI上只测试前端的逻辑,最终的结果可能会是忽视很多原有的功能点,导致了UI测试的不充分。所以存在多人分工且时间充分的时候可以尝试接口去做业务流的全覆盖,否则不要轻易尝试。
  • 在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
    • 在工具中可以使用全局变量等方式将需要的数据进行传送。
    • 依赖于第三方数据的接口如何进行测试
    • 可以使用SoapUI等工具直接调用第三方数据接口的webservice,通过返回值来查看第三方数据的接口是否调用正常。
    • 也可以利用一些MOCK的工具来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖
    • mock主要用来开发需要依赖一部分接口,但对方没有提供环境情况下
    • 可以利用一些MOCK工具(如:JSON Server、Easy Mock)来模拟第三方的数据返回,最大限度的降低对第三方数据接口的依赖https://www.cnblogs.com/yoyoketang/p/9348552.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:是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的
posted @ 2019-03-21 21:25  橙子皮!  阅读(835)  评论(0编辑  收藏  举报