总结-4

1、mysql中的查询有几种方式
    SELECT语句:用于从一个或多个表中检索数据
     
    JOIN语句:用于将两个或多个表中的行连接起来,基于这些表之间的关系
     左连接:left join
     右连接:right join 
    UNION语句:用于合并两个或多个SELECT语句的结果集
     全连接:full join 或 full outer join(outer可以省略),但Mysql不支持,可以使用union组合并去重实现
     简单理解:全连接查询的是 左表所有的数据  加上右表所有的数据并去重
    例如:
     select * from student st left join teacher th on st.teacher_id = th.id
     union 
     select * from student st right join teacher th on st.teacher_id = th.id

    子查询:嵌套在其他SELECT语句中的SELECT语句,用于检索满足特定条件的数据
     
    补充:
     1.MySQL 有三种集群模式:
        单机模式
         单机模式是 MySQL 的最简单的模式,只有一台服务器,数据存储在磁盘上。
        主从模式
         主从模式是 MySQL 中最常用的模式,包括一台主服务器和一个或多个从服务器。
         主服务器上的数据会同步到从服务器上,从服务器可以用来做读写分离,提升系统的性能
        高可用模式
         高可用模式是 MySQL 中的高级模式,包括两台或多台服务器组成的集群,其中一台服务器是主服务器,其他的是从服务器。
         在这种模式下,如果主服务器出现故障,可以由从服务器自动切换为主服务器,维护系统的可用性。
         
     2.MySQL分页查询的方法
         MySQL目前常用的分页方式有两种:
        
        a.利用limit实现分页,语法为“SELECT*FROM 表名 limit 开始记录数,每页条数”;

        b.利用主键索引实现分页,语法为“SELECT*FROM 表名 WHERE 字段名 > (页数*10) LIMIT 条数”

         一般使用第一种方式居多,适用于数据量不大的场景:
        例如:
         -- 0是开始的记录数,10是条数
         SELECT * FROM user LIMIT 0,10;
         如果换成第二种写法:
         SELECT * FROM user WHERE id > (0*10) LIMIT 10
         
         注释第二种写法
         id是主键,如果是第X页共Y条:(X从0开始计算)
         SELECT * FROM user WHERE id > (X*10) LIMIT Y
         
        注意:
         第一种方式和第二种方式当数据量不多的时候,是第一种方式占优势,毕竟没有数据重合的问题,并且查询的速度也没有明显差别。
         但是当数据量上去了,差别就很明显了,查询速度是不一样的 ,查询了第100页时,实际上前99页都已经被扫描过。
         所以第二种的方式更适用于大量数据的场景。

         
2、APP登录功能测试点
     1.不同登录方式的测试,包括账号密码登录、手机号登录、邮箱登录、扫码登录等;
     2.测试登录的成功和失败情况,包括正确的账号密码、手机号、邮箱是否能够成功登录,错误的情况下是否能够提示用户错误信息;
     3.测试登录后的用户信息是否正确,包括用户昵称、头像、等级、积分等信息是否正确显示;
     4.测试不同设备的登录情况,包括手机、平板、电脑等设备的登录情况;
     5.测试不同网络环境下的登录情况,包括WiFi、4G、3G等网络环境下的登录情况;
     6.测试登录后的各种操作,包括修改密码、找回密码、退出登录等操作是否正常;
     7.测试登录的安全性,包括密码是否加密存储、是否有防止暴力破解的机制等;
     8.测试登录的稳定性,包括高并发情况下的登录是否正常、服务器压力测试等
     
    补充:
    9.免登录
     很多应用提供免登录功能,当应用开启时自动以上一次登录的用户身份来使用app.

     1)app有免登录功能时,需要考虑IOS版本差异
     2)考虑无网络情况时能否正常进入免登录状态
     3)根据规则,一个帐户只允许登录一台机器。所以,需要检查一个帐户登录多台手机的情况。原手机里的用户需要被踢出,给出友好提示
     4)app切换到后台,再切回前台的校验;切换到后台,再切换回前台的测试
     5)密码更换后,检查有数据交换时是否进行了有效身份的校验
     6)支持自动登录的应用在进行数据交换时,检查系统是否能自动登录成功并且数据操作无误
     7)登录
      系统是否允许多次非法的登陆,是否有次数限制
      使用已经登陆的账号登陆系统是否正确处理
      使用禁用的账号登陆系统是否正确处理
      登陆超时的处理

 
3、抓包工具怎么抓取APP的数据包请求
    1.Android移动端App抓包
       前提:
         因为Fiddler抓包的原理就是通过代理,所以确保被测终端要和安装Fiddler的电脑在同一个局域网中。(也就是同一网段中)
         确保防火墙允许Fiddler进程可以远程连接。(不行就关闭防火墙)
     
       步骤1:开启Fiddler的远程连接  
         Fiddler中,Tools菜单 —> Options… —> Connections标签页,勾选Allowremote computers to connect,并记住端口号为8888,
         等会设置手机代理时需要。设置好后重启Fiddler保证设置生效。
         allow remote computers to connect表示“允许远程计算机连接”。意思是代理的移动设备可以连接到Fiddle上,必须勾选。
        
       步骤2:开启Fiddler的HTTPS请求解码
         提示:设置完成后最好重启一下Fiddler。
         
       步骤3:查看本地电脑IP地址
         在CMD命令行中输入ipconfig查看本地电脑IP地址
         
       步骤4:在手机中设置网络代理
         移动端手机的网络代理要设置成Fiddler代理。
         设置 —> WLAN —> 点击已链接网络的箭头 —> 向下滑动屏幕找到代理,进行配置。

         选择代理为手动。
         代理服务器主机名:填写电脑的IP地址(步骤2查询的)
         代理服务器端口:填写Fiddler设置的代理端口(在步骤1种,Connections标签页中的配置)
         
       步骤5:安装证书抓取HTTPS请求
         打开手机中的浏览器,输入192.168.3.104:8888,这是你上面在手机中设置网络代理Fiddler的服务地址。
         如果出现响应页面说明访问代理服务Fiddler成功,就可以安装证书了。
         
         You can download the EiddlerRoot certificate:表示您可以下载Fiddler根证书。
        安装Fiddler根证书
         打开设置 —> 更多设置 —> 系统安全 —> 加密与凭据 —> 从存储设备安装,选择下载好的FiddlerRoot.cer进行安装。
         (不同的Android系统版本的位置不一样,按照思路自己去找。)
         然后在手机中使用浏览器也好,或者打开短视频App也好,就可以进行HTTP或者HTTPS请求的抓取了。
        注意:测试完毕,记得关闭代理,否则手机无法上网
          
        提示:
         从手机本地安装Fiddler证书。
         我们可以把电脑中Fiddler安装好的证书导出来,然后传入手机存储中。
         然后点击设置 —> 安全 —> 从SD卡安装 —> 证书存放的文件夹 —> 找到Fiddler证书。
         点击Fiddler证书 —> 命名证书(一般为CA) —> 点击确定进行证书安装。
         
    2.IOS移动端App抓包(跟安卓手机步骤一样的)
         iPhone和iPad都可以抓取。
         前提:
         确保被测终端要和安装Fiddler的电脑在同一个局域网中。(也就是同一网段中)
         确保防火墙允许Fiddler进程可以远程连接。(不行就关闭防火墙)
  
    问题1:需要注意的是,不是任何Https请求包都可以抓到的。
     Android7.0以下是可以的,只要手机里安装对应的CA证书,比如用Charles抓包,手机只需安装Charles提供的证书就行;
     Android7.0之后,Google推出更加严格的安全机制,应用默认不信任用户证书(手机里自己安装的证书),
     自己的app可以通过配置解决,但是抓其它app的Https请求就行不通
    
    问题2:如果不能,那些情况下可以抓取,那些情况下抓取不到?
     虽然Android7.0之后常规手段不能抓Https的包,例如,通过xposed,安装JustTrustMe模块,Https证书验证直接跳过等需要验证
 

5、能够独立跟踪测试过程中遇到的问题,与开发良好沟通并解决问题,富有合作精神,遇到风险能及时反馈上级
     a.处理的方案
         第一步:定位问题,出现在那个环节;二次复现问题
         第二步:记录问题,判断问题严重等级;(记录问题复现的步骤,截图、语言组织)
         第三步:修复问题,根据问题影响程度,跟相关环节的人员通知到位
         
     
6、熟悉web、H5、小程序、app等平台软件产品的测试
    a.web、H5、小程序、app的区别
     1. APP测试流程?
         APP测试流程与web测试流程类似,分为如下八个阶段:

         1)测试计划:根据需求说明书,项目计划书等编写;来确定测试各个阶段所需时间,测试目标,风险评估等。
         2)测试方案:根据测试计划明确测试方法,测试任务,测试人员,测试时间的分配和所需的资源。
         3)测试准备:搭建测试环境,准备测试数据,测试人员分工;
         4)测试用例的设计与编写:参考需求文档,原型图等,后进行用例评审及补充完善;
         5)执行测试;进行冒烟测试,后对主功能流程进行测试,包括客户端的单个功能模块,及功能业务逻辑功能交互,
           回归测试;再对正式环境进行完整系统测试
         6)提交测试结果:跟踪测试结果,提交测试报告;
         7)文档归纳:测试计划、测试方案、测试用例、测试报告;
         8)日常维护性测试;

        APP测试周期可根据项目的开发周期来确定测试时间,一般测试时间为两三周,根据项目情况以及版本质量可适当缩短或延长测试时间。
          
     2.APP测试需要提前准备哪些测试资源?

         具体要准备的测试资源,根据实际项目来,可以从以下几个方面出发:
         1.IOS设备、Android设备(选取市面上主流手机产品,模拟机)
         2.支付宝/银联支付的项目,需要提前申请支付宝/银联账户等
         3.有秒杀专题的题目,需要规划秒杀时间表
         4.有优惠券使用的项目,需要添加优惠券数据

     3.APP测试和Web测试的区别?

         单纯从功能测试的层面上来讲的话,

         APP测试、web测试在流程和功能测试上是没有区别的。

         相同点:
         1.同样的测试用例设计方法;
         2.同样的测试方法:都会依据原型图或效果图检查UI;
         3.测试页面载入和翻页的速度、登录时长、内存是否溢出等;
         4.测试应用系统的稳定性;

         不同点:

        1.系统结构方面
         web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步更新。
         app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。

        2.性能方面
         web项目 需监测响应时间、CPU、Memory;
         app项目 除了监测响应时间、CPU、Memory外,还需监测 流量、电量等;

        3.兼容性方面
         web项目:浏览器(火狐、谷歌、IE等);操作系统(Windows7、Windows10、Linux等)。
         app项目:设备系统:iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac);
         手机设备可根据 手机型号、分辨率、屏幕尺寸不同

     4.相对于 Wed 项目,APP有专项测试
         1)干扰测试:中断,来电,短信,关机,重启等。
         2)网络测试(模拟2g、3g、4g、5g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g、5g/wifi 等)。
         3)安装、更新、卸载,中断、前后台切换。
             安装:需考虑安装时的中断、弱网、安装后删除安装文件,全新安装、升级安装、第三方工具安装等情况;
             卸载:需考虑第三方工具卸载、直接卸载卸,卸载后是否删除app相关的文件;
             更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新;
             中断:来电中断、短信中断、闹钟中断、手机锁定、手机断电、手机死机;
         4)界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换。
         5)安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等。
         6)边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等。
         7)权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等。

     5.测试工具方面
        自动化工具:
         APP 一般使用 Appium;
         Web 一般使用 Selenium;
        性能测试工具:
         APP 一般使用Monkey、 JMeter;
         Web 一般使用 LR、JMeter;

     6.Android手机和IOS手机,系统有什么区别?
         1.两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。
        IOS 沙盒运行机制:
         每个程序都有自己的虚拟地址空间。所以,程序之间不能进行访问。
         默认只会将应用的最后运行数据,记录在RAM里面。

        Android 虚拟机运行机制:
         所有的应用程序都是运行在虚拟机中,用户界面其实是由虚拟机传递的,并且通过虚拟机,Android的任何程序都就可以轻松访问其他程序文件。
         所有的Android的应用程序都是运行在RAM里面的,所以会发现有时候Android用着用着就开始有点卡顿。

    b.小程序、app的专项测试
     
7、补充
    es数据库
    1、ES的介绍
        ElasticSearch简称ES,是一个高拓展和开源的全文搜索和分析引擎,可以准实时地存储、搜索、分析海量的数据。
         它和MongoDB、redis等一样是非关系型数据。是一个由Apache开源的高扩展、全文检索和分析引擎(NoSQL数据库功能)的系统,
         它可以准实地快速存储、搜索、分析海量的数据。全文检索:全文检索是指计算机索引程序通过扫描文章中的每一个词,
         对每一个词建立一个索引。指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,
         并将查找到的结果反馈给用户的检索方式。这个过程如同通过字典中的检索字表查询字的过程,全文搜索是搜索引擎数据库中的数据。
        a:应用定位:采用Restful API标准的可扩展和高可用的实时数据分析的全文搜索工具。
        b:可拓展:开源软件,支持很多第三方插件。
        c:高可用:在一个集群的多个节点中进行分布式存储,索引支持shards和复制,即使部分节点down掉,也能自动进行数据恢复和主从切换。
           
    2、ES数据库的特点 
         ① 基于java/lucene构建,支持实时搜索
         ② 分布式部署,可横向集群扩展
         ③ 支持百万级数据
         ④ 支持多条件查询,如聚合查询
         ⑤ 高可用,数据开源进行切片备份
         ⑥ 支持Restful风格的api调用

    3、ES的应用场景
         ① 监控。对日志类数据进行存储、分析、可视化。对日志数据,ES给出了ELK的解决方案。其中logstash采集日志,
           ES进行复杂的数据分析,转换你的日志,并将他们存储在es中,kibana进行可视化展示。
         ② 线上商城系统,用户需要搜素购物系统网站上的商品信息。es可以存储所有的商品信息和一些库存信息,
           用户通过搜索引擎可以查询到自己需要的商品信息。
         ③ json文档数据库。用于存放java格式的文档。
         ④ 提供全文搜素并高亮关键字。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345