zoukankan      html  css  js  c++  java
  • 电商项目

    1.比如商品卖完了,就需要在后台进行添加
    2.某一个功能模块使用次数很多就需要做性能测试
    3.所谓的数据提交操作就是表单测试(例如登录 注册)
    4.输入框的必填项和非填项的优先级
    5.业务约束(我输入我的手机号有匹配对应的验证码)
    6.下拉框里的密码提示问题 就是去查询数据库
    7.数据的关联 模糊匹配
    8.弱网测试下 重复提交 内容是否涉及加密
    9.订单的搜索就会涉及到组合条件
    10.删除的关联性确认数据库是否及时更新
    11.cookie sesssion身份 清除缓存后从新登录的鉴权
    12.界面考虑到 好不好用 操作简不简单
    13.浏览器的兼容性
    14.SQL注入 跨站攻击
    15.monkey是稳定性测试


    ----------------------------------------------面试题-----------------------------------------------

    1.一个登陆界面,有哪些测试点?

    功能
    输入正确用户名、正确密码
    输入用户名如a,用户名列表出现登陆过的以字符a开头的用户名
    输入错误用户名、正确密码
    输入正确用户名、错误密码
    输入错误用户名、错误密码
    不输入用户名、不输入密码
    用户名和密码都输入空格
    用户名不能包含特殊字符(!@#¥%……&*)
    密码不能包含特殊字符(!@#¥%……&*)
    用户名、密码分别输入or 1=1 、or 1=1
    登陆失败,给出正确提示
    登陆失败,用户名、密码是否清空
    用户名和密码是否区分大小写
    是否支持上、下、左、右键

    兼容性测试:
    不同浏览器,不同操作系统,不同分辨率等下,登陆界面能否正常显示

    安全
    同一用户在多个页面同时登陆,怎样处理信息覆盖问题
    密码应该密文显示、保存
    密码输入框的内容是否支持复制、粘贴、移动
    同一用户的登陆次数的限制
    连续输入3次或以上错误密码,用户是否被锁一定时间(例如:15分钟)?时间点内不允许登陆,超出时间点是否可以继续登陆?
    用户session过期后,重新登陆是否还能重新返回之前session过期的页面?
    用户名和密码输入框是否支持键盘快捷键?如:撤销(Ctrl+z)、复制(Ctrl+c)、粘贴(Ctrl+v)等等。

    页面
    输入正确用户名、密码,按enter键
    按Tab键,焦点顺序切换
    按Shift+Tab键,焦点顺序切换
    输入正确的用户名和密码,按Alt+F4键,软件退出
    是否支持Esc键的使用

    压力测试
    大量并发用户(超过临界点)登陆,系统的响应时间是多少呢?系统会出现宕机、内存泄露、cpu饱和、用户无法登陆的情况吗?

    2.一个APP怎么测?

    (1) 功能测试:每项开发的新功能都需要进行测试。
    (2)性能测试:CPU,内存,耗电量,流量,FPS
    (3)兼容测试:不同手机,不同系统
    (4)安全测试:是否容易被外界破解;是否存在被恶意代码注入的风险;
    (5)服务器性能测试:能够承载多少用户量

    3.python断言代码是什么?

    Python的assert是用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息
    assert?True?? ??# 条件为 true 正常执行

    assert?False?? ?# 条件为 false 触发异常

    4.接口的性能怎么测?

    1. 响应时间
    2. 吞吐率
    3. 用户数
    JMeter Java Sampler进行接口性能测试 

    5.接口测试怎么发送成功的请求让返回的数据是错的?

    1.设置响应在服务器返回后的断点
    2.通过fiddlerScript来修改响应的json数据
    3.通过AutoResponder来改变响应结果

    6.monkey做稳定性测试如何不重复之前之前的测试?

    指定事件百分比 指定不重复的命令id

    7.monkey如何查看错误日志?

    adb logcat *:E >文件路径

    8.linux如何查看error下的错误日志?

    tail 日志文件 | grep error

    9.linux如何查看日志关键字?

    tail 日志文件 | grep 关键字

    10.接口请求跨线程如何实现关联?

    首先先把动态数据找出来、然后用正则表达式取样器关联、然后添加后置处理器中;

    bean shell 后置处理程序 定义新的跨线程组变量名做到跨线程组关联

    11.jmeter做接口测试如何实现数据关联?

    思路: 前一个请求发送后的响应数据(动态数据),作为后续请求中参数

    <1>确定动态数据:对比分析法,协议数据包分析法
    录制两份脚本jmx,使用文本比较器 Aptdiff
    找到可疑的数据,比如Session id,编号...商品id
    确定需要关联

    <2>找到相应请求
    根据请求参数,数据包数据规律查找

    <3>在相应请求节点下,添加"后置处理器":"正则表达式取样器"
    目的:根据响应数据包,根据左右边界,获取静态数据,存于关联参数中

    <4>将后续请求中的静态数据,替换为关联参数${变量名}

    12.下一个接口依赖上一个接口怎么实现

    用一个全局变量来处理依赖的数据,比如登录后返回token,其他接口都需要这个token,那就用全局变量来传token参数

    13.你做什么请求的接口多?

    post get

    14.HTTPS和HTTP有什么区别?

    1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
    2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

    15.你测购物车里的优惠券有哪些异常场景?

    1.购物车无缘无故被清空
    2.客户对订单删除进行物理删除,上家的也被删除了
    3.卖家删除商品,该商品正在进行中的订单不能进行任何操作
    4.商品加入购物车,然后提交订单但是没有支付 此时购物车居然还有刚刚添加的商品

    16.项目上线出了问题,你该怎么办?

    即时反馈给研发团队,确定是否为bug,如果非BUG的,那确定问题产生的原因,并让问题对接人知晓后反馈和客户。如果确定为BUG后,则需要对bug的严重等级进行评级。如果是轻微或者不会对用户使用造成太大问题的,可以作为优化项放到后面版本迭代时进行修复。反之严重问题,就应该找到bug所属模块的程序负责人,确定解决方案,并及时发布对应的补丁包或者给出解决措施。同时,问题对接人一定要给用户进行反馈或说明,包括对解决方案的简单说明

    17.你们项目上线怎么运营的?

    市场+运营负责

    18.项目上线后客户需要添加商品,怎么办?

    客户自己在后台添加

    19.商城进行活动,后台怎么配置?

    客户配置

    20.打折商品组合之后下单,调用优惠券,后台怎么配置?

    客户配置

    21.自动化框架了解哪些,框架函数了解吗?

    selenium QTP pytest

    22.接口自动化流程?

    分析需求-->搭建自动化环境--->(抽取接口功能用例并将其转化成自动化用例)编写脚本用例--->执行用例--->产生测试报告--->持续集成(如果有需要)

    23.怎么查询一个客户一个月来的访问量?

    24.调用第三方API时,发送正确的请求如何实现数据返回错误?

    mock

    25.怎么跨数据库调用数据?

    jemter里面的JDBC


    --------------------------------------------接口---------------------------------------------

    1.前端几种加密方式整理?

    MD5加密(不能解密) base64加密 sha1加密 RSA加密
    对称加密和非对称加密

    2.流行的接口有哪几种协议的接口?

    HTTP HTTPS dubbo,rpc

    3.http协议有什么特点?

    无状态(无记忆) 灵活 无连接 简单快速

    4.postman如何实现接口关联?

    tests实现接口的关联 全局变量

    5.接口未全部提测,怎么实现接口脚本间的自动关联?

    6.若请求需要先登录后方可请求,如何进行接口测试?

    7.cookie和session的原理?区别是什么?

    8.接口测试断言从哪些方面去设计?

    1.状态码
    2.返回值
    3.数据库校验
    4.空校验,异常校验(数据,环境,前置条件异常)
    5.冥等性(例如外卖下单点100次不支付,产生的垃圾数据)
    6.流程节点限制

    9.dubbo接口如何测试?

    --------------------------------------------------------------------------------------------

    1、目前市面上流行的接口大多有哪几种协议的接口?

    答:http,https,dubbo,rpc等即可。

    2、接口的请求方式有哪几种?

    答:get,post,put,delete,head,Trace,opions等,大多以get和post请求为主

    3、get和post区别是什么?

    答:POST和GET都是向服务器提交数据,并且都会从服务器获取数据。

    区别:
    (1)传送方式:get通过地址栏传输,post通过报文传输,故而post更相对来说私密性一点
    (2)传送长度:get参数有长度限制(受限于url长度),而post无限制
    (3)get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留
    (4)get方式大多用作查询接口,获取响应数据;而post方式更多做数据添加、修改或删除等操作

    4、post请求的请求类型有哪几种?

    答:application/json json字符串

    application/x-www-from-urlencoded 表单传递

    multipart/form-data 主要用于上传文件

    5、cookie和session的区别是什么?

    答:cookie数据存放在客户的浏览器上,session数据放在服务器上。

    cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面应当使用cookie。

    单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

    可以将登陆信息等重要信息存放为session;其他信息需要保存,可以放在cookie。

    6、请求接口中常见的返回状态码

    答:
    1xx – 信息提示(表示临时的响应。客户端在收到常规响应之前,准备接收一个或多个1xx响应)
    2xx – 成功(表明服务器成功地接受了客户端请求)
    3xx – 重定向(客户端浏览器必须采取更多操作来实现请求,例如用户未登录就操作了修改的功能)
    4xx – 客户端错误(发送错误,客户端有问题)
    5xx – 服务器错误(服务器由于遇到错误而不能完成该请求)

    常见的有:

    200 OK:服务器成功返回用户请求的数据

    201:用户新建或修改数据成功

    202:表示一个请求已经进入后台排队(异步任务)

    301:删除请求数据

    302:在其他地址发现了请求数据

    303:建议客户访问其他URL或访问方式

    304:客户端已经执行了GET,但文件未变化

    400 :用户发出的请求有错误,服务器没有进行新建或修改数据的操作

    401:表示用户没有权限(令牌、用户名、密码错误)

    403 :表示用户得到授权(与401错误相对),但是访问被禁止

    404:用户发出的请求针对得到是不存在的记录,服务器没有进行操作,该操作是幂等的

    500:服务器发生错误,用户将无法判断发出的请求是否成功。

    502:服务器返回超时

    7、接口测试用例如何进行设计?

    答:针对输入,可按照参数类型进行设计,参数是否必填,参数之间是否存在关联,参数数据类型限制,参数数据类型自身的数据范围值限制;

    针对接口处理,可按照逻辑进行用例设计;

    针对输出,可根据结果进行分析设计。

    8、如何分析是前端还是后端的问题?

    答:检查接口,前端和后台之间是通过接口文件相互联系的,需要查看接口文件。

    检查请求的数据是什么,反馈的数据又是什么。

    页面可以直接F12,或者抓包查看。如果发送的数据是正确的,但是后台反馈的数据是不符合需求的,那就是后台的问题;如果前端没有请求接口或请求的时候发送数据与需求不符,那这个时候就是前端的问题了。

    9、接口测试中,下游接口需要依赖上游接口的数据,该如何处理?

    答:在工具中可以使用全局变量等方式将需要的数据进行传送,或者使用对响应数据进行提取,传给下游接口。

    10、依赖第三方数据的接口如何进行测试?

    答:可以使用fiddler进行调用接口时预设期望响应,mock返回自己设置的响应数据,最大限度的降低对第三方数据接口的依赖。

    11、若请求的接口需要先登录后方可请求,如何进行接口测试?

    答:请求登录口获取返回的响应头,或者响应信息中的数据,cookie,token,session等,传递给依赖登录接口的请求头中,发起请求即可。

    12.接口测试怎么测?

    通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。

    参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,
    商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。

    接口安全:

    1、绕过验证 300改3
    2、绕过身份授权 用户改商品信息
    3、参数是否加密
    4、密码安全规则,密码的复杂程度校验
    异常验证:
       所谓异常验证,也就是我不按照你接口文档上的要求输入参数

    性能测试:
    接口并发情况,如上面提到的:一个账号,同时(大于2个请求)对最后一个商品下单,或不同账号,对最后一个商品下单
    接口响应时间,响应时间太长了,肯定需要优化,一般都是毫秒级别

    13.在接口测试过程中,上下游接口有数据依赖如何处理?

    用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数

    14.依赖第三方数据的接口如何进行测试

    这个标准答案是:mock
    mock除了用在单元测试过程中,还有一个用途,当前端开发在开发页面的时候,需要服务端提供API接口
    此时服务端没开发完成,或者说没搭建测试环境,这个时候前端开发会自己mock一个api服务端,自己给自己提供调用接口的返回数据
    mock-server用途就是开发在开发的过程中,需要依赖一部分的接口,但是对方没有提供或者环境等等情况

    15.当一个接口出现异常时,你是如何分析异常的

    1.抓包,用fiddler工具抓包,或者浏览器上f12,app上的话,那就用fiddler设置代理,去看请求报文和返回报文了
    2.查看后端日志,xhell连上服务器,查看日志

    16.如何模拟弱网测试

    fiddler和charles都可以模拟弱网测试,平常说的模拟丢包,也是模拟弱网测试

    17.F12怎么查看前端错误?

    F12 ---> console 会自动标记处页面错误,控制台不显示前端JSP页面错误

  • 相关阅读:
    JS案例
    JS案例--Tab栏切换
    currentBackgroundImage:获取按钮背景图片
    笔记:UITextView内容垂直居中方法
    笔记:载入viewcontroller的几种方式
    沙盒文件的创建(简单举例)
    笔记:iOS随机数与随机数据集
    四种传值方法(通知、block、属性、NSUserDefaults)
    笔记:沙盒文件的拷贝
    笔记:iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)(别人的代码直接复制过来的,我脸皮有点厚)
  • 原文地址:https://www.cnblogs.com/lgmeng/p/13887916.html
Copyright © 2011-2022 走看看