- APP测试团队组成
- APP架构:C/S架构
- APP组成团队:项目经理、开发(客户端、服务端)、测试、产品(业务)、ui设计、运维(DBA)
DBA先执行SQL,运维再发布
- 如何定位前后端Bug?
1、接口 2、抓包Fiddler 3、Linux命令实时监控 4、开发者模式debug
Web定位bug:1、F12 2、接口 3、linux命令
- Android和ios手机上的包是如何安装的?
Android测试APP的安装:通过jenkins上打包构建、生成不同环境的二维码,下载下来,扫码安装的
四、bs/cs架构区别?
1)bs不需要更新,下载客户端,直接通过浏览器输入网址进行访问;
2)cs需要下载客户端才能使用,需要定期更新
3)bs架构对服务器的性能要求高,cs架构客户端能体现服务端分摊部分的性能压力
4)bs不会占存储内存,cs会占用存储内存
cs和bs优缺点:
1)cs 优点:手机携带方便,操作简单缺点:需要安装升级App,服务器相对比较难维护
2) bs 优点:浏览器直接访问,不需要安装,服务器好维护
bs架构不需要升级多个客户端,直接升级服务器
缺点:安全性不高,信息容易泄露
五、修改hosts文件实现域名解析
hosts文件的位置:C:windowssystem32driversetc,并用记事本打开
按照 ip地址 域名 的格式添加单独的一行记录。例如
192.168.6.29 www.server110.com
注意: IP地址前面不要有空格,ip地址和域名之间,要有1个空格。
* 注意:有些浏览器会保存DNS缓存,比如Chrome。多按几次F5刷新即可。
六、升级:自定义升级/强制升级
APP兼容性测试:1、设备兼容 2、版本兼容(服务在1.1,APP升级为1.1测试Android或ios功能,之后再构建1.0的包回退版本,测试Android或ios app版本)
七、Tomcat项目:其是运行的中间件,即应用服务器(tomcat,jboss)
版本管理工具:SVN、git
部署环境是Linux下部署Jenkins项目
- Jenkins是一个基于java的持续集成集成工具,持续集成就是是软件开发的一种实践,团队开发成员经常集成他们的工作,通过每天每个成员至少集成一次,也就意味着每天可能会发生多次集成,每次的集成都会通过自动化的构建(包括编译、发布)来验证,从而尽早的发现集成错误。
- 持续集成是包括一个版本管理工具(svn、git等)和Jenkins工具来实现的。关联到版本管理工具就会有对应服务的分支。
Jenkins安装的是jdk8版本,Jenkins安装在linux系统下。
注意:Git的几个分支「Master / Hotfix / Release / Develop / Feature」
Master :线上的发布分支,稳定版本 。
Hotfix :紧急修复分支 。
Feature :功能特性分支 (一个团队会有时也会存在多个不同分支,不过一般都是约定好对应版本的分支在相同的分支提交代码;比如Feature/A Feature/B Feature/C ... )
分支命名规范:
测试分支:release_v1.1.0
开发分支dev_v1.1.0
生产分支:master
上传数据文件:rz –e 数据文件名
sz 数据文件 下载文件
ftp +ip
ll查看哪些目录或文件
mget +目录下的数据文件
put +数据文件
部署环境的步骤:
1、有sql变动、配置文件变更,需要先执行SQL、添加配置文件
2、jenkins构建打包(分支)
3、jenkins下包
4、连接Linux客户端工具xshell,连接对应模块服务(比如支付服务器ip 用户名、密码)
5、进入到上传服务包的目录
6、删除上一版本服务包(rm –rf *)
7、上传包(rz –e 包名 tar –zxvf product.tar.gz )
8、查看进程,杀进程(ps -ef | grep java/tomcat/product ps aux | grep java kill -9 进程号)
9、启动服务(bin启动 ./startup.sh )
10、查看日志(确保程序启动成功)
启动失败分析:
a、sql、配置文件(执行sql、添加配置文件,查看进程,杀进程,启动,监控日志)
b、启动代码问题(截图错误日志,找对应的开发协助解决,重新构建打包部署环境)
查看当前目录:pwd
ls –l 查看目录或文件
返回到上一级目录 cd ..
history 查看历史命令 上下键
ping 服务器ip/域名 查看服务器或者域名是否通畅
创建目录:mkdir 目录名
11、前后端分离,如何防止API接口被恶意调用/攻击
1)、图形验证码:
将图形校验码和手机验证码进行绑定,在用户输入手机号码以后,需要输入图形校验码成功后才可以触发短信验证,这样能比较有效的防止恶意攻击。目前大部分应用都是采用这种方式。
2)、限定请求次数:
在服务器端限定同IP,同设备,同时间范围内的接口请求次数。比如同一号码重复发送的时间间隔,一般为60或120秒;设置每个IP每天最大的发送量;设置单个手机号每天的最大发送量。
3)、流程条件限定:
将手机短信验证放在最后进行,比如需要用户必须注册后,或者用不必须填写了某些条件才能进行短信验证。
4)、归属地是否一致:
服务器端检查用户的IP所在地与手机号归属地是否匹配,如果不匹配则提示用户手动操作等。
5)、服务器接口验证:
当用户登录成功后,返回一个由Token签名生成的秘钥信息(Token可使用base64编码和md5加密,可以放在请求的Header中),然后对每次后续请求进行Token的封装生成,服务器端在验证是否一致来判断请求是否通过。
6)、采用https:
线上的api接口开启https访问,这样做的话别人抓包的难度会提高很多,而且https需要秘钥交换,可以在一定程度上鉴别是否伪造IP。
7)、服务器端代理请求:
针对于网站,这也是解决跨域的方案之一,采用服务器代理可以有效的防止接口真实地址的暴露。
8)、其它:
当接口存在大量肉鸡攻击的时候,攻击者也同样容易暴露意图,我们可以通过系统分析算法,让攻击者获取不到有效数据,提高攻击成本。



