版本控制工具SVN的使用
一、什么是SVN
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
二、SVN的下载安装
下载地址:https://tortoisesvn.net/downloads.zh.html
安装完不要忘记重启电脑
三、SVN的常用操作
- 迁出配置库内容(SVN Checkout)
1)新建或进入目录下(比如E盘),右键 →SVN Checkout
2)URL of repository 填写仓库路径即可
3)Revision处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。
4)点击“OK”按钮后,在弹出的对话框中输入用户名和密码,验证成功后,项目文件开始从远程服务器下载到本地工作目录中:
5)点击“确定”按钮后,即可获取完成,出现如下下载界面:
6)下载完成后,服务器上所有内容会出现在本地文件夹下
- ** 更新文件(SVN Update)**
1)当从配置库迁出相应目录后,他人对服务器上此目录内容进行了修改,则需要再次获取改动内容到本地目录的过程称为更新。更新可以针对一个文件、几个选中的文件或者整个文件目录。
选中要被更新的文件,右键选择“SVN Update”项,如下:
2)点击“SVN Update”后会弹出窗口显示更新的进度,如下:
若上述框中的有文件出现亮红,说明来自配置库的内容与你本地修改内容合并时出现了冲突
- 提交更新(SVN Commit)
1)本地文件修改后,若是需要更新到服务器上,则需要提交(Commit)最新的更新。
Commit的作用是将本地最新修改的文件同步到SVN服务端,供其他人来参考或者使用,当然使用之前,要先Update一下,来确保是最新的,在修改文件上击右键,出现菜单,选择“SVN Commit…”,如下:
2)然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败,如下:
3)当出现下图所示提示框,则表明刚刚的修改已成功提交,并且当前的SVN版本号加1。
- 增加文件(Add)
1)将需要增加的新文件放入到本地迁出的文件夹TestManger目录的相应位置中,鼠标选中新文件右键选择“Tortoise SVN”的“Add”项,如下图所示:
2)鼠标选中TestManger文件夹右键选择“SVN Commit…”,将新文件上传配置库对应文件夹中(若只上传单个文件,只需点中单个文件上传即可)。
- 检查更新(Check for modifications)
1)此功能可以显示本地对文件所做的修改有哪些还没有提交。不光能看到对文件的修改变化,还包括增加文件或目录,删除文件或目录,移动文件或目录等。当他人提交了哪些文件的改动,也可通过此项来进行查询。
- 删除文件(Delete)
1)选中要被删除的文件,右键选择“Tortoise SVN”的“Delete”项,如下:
2)删除文件后,鼠标选中TestManger文件夹右键选择“SVN Commit…”项进行提交,提交方式同增加文件的提交方式,提交后则将新文件从配置库中删除。
- 撤销更改(Revert)
在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中文件夹右键选择“Tortoise SVN”的“Revert…”项进行撤销,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。
- 锁定和解锁(Get lock and Release lock)
当项目需要时可以在本地硬盘中将迁出的内容进行锁定,选中要被锁定的文件右键选择“Tortoise SVN”的“Get lock…”项进行锁定(锁定后他人将无法修改此文件),系统弹出锁定信息框。 当文本文件锁定后,需要通过解锁他人才能继续对文件进行修改。
选中被锁定的文件右键选择“Tortoise SVN”的“Release lock…”项进行解锁。
- 重命名文件(Rename)
修改文件名,选中需要重命名的文件或文件夹,然后右键“Tortoise SVN”的“Rename”,在弹出的对话框中输入新名称,点击“OK”按钮,并将修改文件名后的文件或文件夹“SVN Commit…”提交到SVN服务器上。
- 获取历史文件(Show log)
Show log顾名思义是显示日志的作用,主要是显示该文件或者该目录被执行的操作,是被谁修改了,以及修改的时间和日期。鼠标选中文件夹右键选择“Tortoise SVN”的“Show log”项,系统弹出此路径下的所有文件版本信息,如下:
https://blog.csdn.net/qq_42221334/article/details/83743920
浏览器兼容测试
PC端浏览器如何选择
一、为什么考虑兼容性
浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,或者“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”。
不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是前端项目需要在不同内核的浏览器中测试网页显示效果的原因。
浏览器兼容性又叫网页或者网站的兼容性问题,是指不同的浏览器(内核)对同一段代码有不同的解析,造成页面显示不一样的情况
所以需要考虑到:内核,客户端屏幕尺寸&分辨率,操作系统,不同终端
二、浏览器内核
截止2014年3月,各浏览器内核的阵营如下:
Trident核心的浏览器:IE6、IE7、IE8、IE9
Gecko核心:FireFox
WebKit核心:safari
Blink核心:chrome(以前是WebKit内核,现在是Blink内核,统称为Chromium内核或Chrome内核)、opera
Trident+WebKit核心:国内的浏览器,如搜狗、360、QQ、百度、遨游等
注:新版Windows自带的edge浏览器,内核为EdgeHTML,2018年12月微软宣称edge浏览器将使用谷歌的 Chromium内核。
三、历史发展
WebKit 早先由 Apple 由 KHTML 项目 fork 出来,用于 Safari 浏览器的 Web 引擎。Google Chrome/Chromium 从创始就一直使用 WebKit(WebCore) 作为 HTML/CSS 渲染引擎,由于宽松的协议、轻量级的设计和便捷的应用程序内嵌 API,WebKit 逐渐变得流行起来。尽管上面一众经常被统称为 WebKit,实际上各自都使用了自己的 WebKit 分支或者编译时选项,使得最终的渲染结果也是存在一定的差异的。
Blink Web 引擎是Google 从 WebKit fork 出的引擎,从2013年4月3日就已经在最新版本的chrome浏览器版本中应用。原因是,WebKit2 在 WebCore 层面上实现的进程隔离在一定程度上与 Google Chrome/Chromium 自己的沙箱设计存在冲突,故 Google Chrome/Chromium 一直停留在 WebKit,使用 Backport 的方式实现和主线 WebKit2 的兼容;这增加了 WebKit 和 Chromium 的复杂性,所以,Google 决定从 WebKit fork 出自己的 Blink Web 引擎,并删除了WebKit2 兼容代码。宣布放弃自有渲染引擎跟随 Chromium 的 Opera 也从WebKit跟随Chromium切换到了Blink Web引擎。
Presto: Opera12.16及更早版本曾经采用的内核,现已停止开发并废弃。
四、64位版本和32位版本的区别
- 硬件限制 CPU最初是32位的,后来演化出64位,并且已经是大趋势了。64位是指CPU的通用寄存器的数据宽度为64位,运行64位数据的指令,当然也提供了更大的寻址空间。
- 操作系统的支持 32位CPU的机器只能安装32位的操作系统,而64位CPU的机器(现在的主流)则可以选择安装32位操作系统或者64位操作系统。因为64位是兼容32位指令执行的,所以64位CPU的机器可以安装32位操作系统且不存在任何兼容性问题,但是这样显然会抹杀64位CPU的优势,降低执行效率,内存寻址空间也会受到4GB的限制。
- 软件层次的支持 64位的操作系统上可以运行32位和64位的软件,但和操作系统一样,只有64位软件才能最大地发挥出CPU和操作系统的功用和效率,并且,64位操作系统运行32位的软件有可能会出现兼容问题,无法正常或完整执行。
综上,64位的IE浏览器作为软件层次,是由CPU硬件和操作系统共同决定的。当操作系统版本一定时,IE版本基本没有可选择性。虽然32位和64位的IE浏览器在执行方面存在效率和兼容性的差异,但不是我们测试需要区分和关注的重点。
五、什么是极速浏览模式
国内的浏览器一般是双核浏览器:极速模式(WebKit核心)+兼容模式(Trident核心),为什么?正是为了兼取WebKit核心轻量、高效、快速的优点,和Trident核心对网银等各种情况均有非常好的兼容性表现。
其特点总结如下:
- 默认情况使用速度更快的WebKit的核心,遭遇兼容性问题时则允许用户手工切换至Trident核心。
- 一般来说对于网上银行、支付宝这样一些特殊网站,双核浏览器普通采用智能切换技术,即当检测到这些站点时会自动切换到兼容模式。
- 实现WebKit核心时,例如:在chrome内核升级后,双核浏览器必须拿到chrome内核源码,重新编译测试其浏览器,然后升级双核浏览器本身,才能升级chrome内核。由于同步更新的时间、人力成本过大,所以,一般双核浏览器和chrome的最新版的内核版本,是存在较大的时间差的,双核浏览器的WebKit核心的版本要老旧得多。
- 实现Trident核心时,双核浏览器以微软操作系统的webcontrol控件为内核(IE浏览器本身也是以webcontrol控件为内核的),所以,当系统的IE升级或者打了更新补丁后,双核浏览器也就自动具备了这些安全防护或性能优化。双核浏览器的兼容模式和IE,是具有更大程度上的一致性。
综上,对于国内的浏览器应该优先和重点保证极速模式下测试回归。
六、IE各个版本在windows的支持情况
上图是各个Windows版本可以升级到的IE版本,但实际上,如果是正版系统开启自动更新后,均会由微软自动推送升级至可支持的最新IE版本。
根据上图,考虑到系统的获取以及安装难度为Win8.1>Win8>>Win7>>XP,推荐的虚拟机Windows环境与IE的搭配如下表:
七、如何选择被测的浏览器
用数据说话,查看被测应用的浏览器份额。
按照一定比例进行覆盖,例如覆盖份额>5%的浏览器。
八、什么时候需要做浏览器兼容性测试?
大型的,用户群体多的网站都需要做浏览器兼容性测试,需要测试主流的浏览器(除特定要求的浏览器以外)
测试的内容:
一般是页面的排版,页面格式,字体,颜色,下拉菜单,复选框等测试(UI:CSS,HML,Js在不同浏览器下的表现)。再就是对功能进行检查。
九、会对不同版本的浏览器进行测试吗?例如:兼容IE8~IE11
- 按照需求,做到一定程度上的向下兼容。
- 用户手册、用户引导中,写推荐使用的浏览器(版本和内核)
十、小众浏览器需不需要做兼容性测试?用户反馈再小众浏览器上有问题?怎么处理?
- 一般来说都需要做兼容性测试,保证我们在小众浏览器上也不会出现错位问题 ,但是具体怎么做要看用户的要求(eg:用户说是需要在谷歌浏览器上加宣传彩页,视觉效果最好,我们就得调查分析 市面上大多数用户使用的分辨率及谷歌浏览器多少分辨率视觉效果才是最好的)。
- 可以与用户沟通,看这个小众浏览器上的客户群体占比例情况能不能放弃,主推大众浏览器,如果不行,可以联系开发修改代码保证小众浏览器的兼容性
十一、如果一个网站分为前台、后台是否都需要做浏览器兼容性测试?
前台测试一般都会做兼容性测试,但是如果我的网站后台只有自己进行管理,一般不需要做兼容性测试,如果我们后台会分一部分权限对外,就得需要做兼容性测试,还是得根据用户的需求来定。
面试:你们做的项目是什么架构?
BS:Browser/server
浏览器的兼容:IE,Firefox…一般就是最新版本/稳定版本就可以了。是不是可以使用,展示是不是OK。
CS:Client/server
CS客户端的兼容:在不同系统是不是兼容。可以安装就好。
测试手段:
- 手工测试:安装不同的浏览器,逐一进行测试(可能考虑高低版本,eg:IE工具ietester [ie8-ie11]);
目标浏览器(高低版本):1.需要和产品沟通好,以需求为准;2.或者参考行业领头的标准
主要环境已经明确,用例要进行全覆盖。侧重:主业务流程
- 云测试:wetest,Testin,人手不足的付费测试
- 测试环境需求:设备,正常网络,弱网,断网
https://blog.csdn.net/zhiyuan411/article/details/89098539