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格式的文档。
④ 提供全文搜素并高亮关键字。
总结-4
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...