一、抓包工具各自的特点:
1、httpwatch
特点:嵌入浏览器的抓包工具,结合浏览器使用界面清晰,方便易用,且提供自动化api,打开–录制–保存结果文件;但只能查看抓取的信息,不能自定义修改;
2、fiddler
特点:客户端抓包工具,通过代理方式获取浏览器信息,且支持自定义请求(composer),自定义服务器返回等;但界面不太直观,且只能抓取http协议;
3、firebug
特点:fixfox自带的插件,与httpwatch功能非常相似,且支持控制跟踪审查元素,可以修改控件名字等,功能十分强大,抓包只是firebug其中很小一个功能;
4、科来
特点:此工具直接监视网卡,既能抓还能修改,抓取内容更多更详细,不仅仅支持http协议,还支持tcp/udp/ftp/pop3等协议,适合对协议要求相对较高的抓包活动;
二、阐述操作系统中的系统调用、中断、上下文切换这三个概念的含义
系统调用:
在操作系统上如果想要运行你的程序,就得靠自己从面向底层硬件的代码编起,但这件事太枯燥,且不是每个人都能做到,这样操作系统就替我们做这些事情,把硬件封装,统一提供一套接口,这些接口就是系统调用;
系统调用把应用程序的请求传给内核,当操作系统接收到系统调用请求后,会让处理器进入内核模式,调用相应的内核函数完成所需的处理,当处理完成后,操作系统会让处理器返回用户模式,来执行用户代码,提高了我们写程序的效率,所以系统调用此时充当的角色就是一个接口,外面由用户程序调用,内部连接内核的其他部分,共同实现用户的请求;
上下文:
上下文简单来说就是一个环境,相对于进程而言,就是进程执行时的环境,具体来说就是各个变量和数据,包括进程打开的文件,内存信息等;当发生进程调度时,导致进程切换时,进程的运行环境也应及时切换,CPU切换到另外一个进程需要保存当前进程的状态并恢复另一个进程的状态:当前运行任务转为就绪状态,另一个被选定的就绪任务成为当前任务,上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境;上下文切换就是这样一个过程,他允许CPU记录并恢复各种正在运行程序的状态,使它能够完成切换操作;
通常在三种情况下可能会发生上下文切换:中断处理,多任务处理,用户态切换;
中断:
中断是为了设备与CPU之间的通信,是实现多道程序设计的必要条件,是CPU对系统发生的某个事件作出一种反应,CPU暂停正在执行的程序,保留现场后自动转去处理相应的事件,处理完该事件后,到适当的时候返回断点,继续完成被打断的程序;例如:读盘,读一半,盘有问题,无法读了,产生中断,解决后,程序恢复,软件错误也会中断;特点:中断是随机的,可恢复的,自动进行处理的;
三、操作系统中的进程的概念和进程都有哪些状态
进程是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时发生的活动;程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。
进程状态:
就绪状态:进程已获取处理器外的所需资源,等待分配处理器资源,只要分配了处理器进程就可执行。
运行状态:进程占用处理器资源;
阻塞状态:由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行
四、 DNS根服务器的概念是什么?
当客户端通过浏览器访问网站时候,输入的是域名类似于:www.baidu.com,需要把域名转化为网络识别的ip地址(即DNS解析),首先会查找本地域名缓存,如果不存在,向上一级当地ISP的DNS查找,比如你用的联通网络,会去查找联通的本地缓存,如果仍然查不到,继续上一级,最终到根目录服务器,其实根目录服务器并没有具体的域名对应信息,但他可以告诉你去哪台服务器去找,直到最终找到为止;
至于全球的13组根域名服务器,1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本,由互联网域名与号码分配机构ICANN统一管理。
五、网络拓扑结构一般分几层,具体叫什么?
分三层,接入层,汇聚层,核心层;
六、性能测试的概念是什么?负载测试、压力测试、配置测试呢?
性能测试:在一定的负载情况下,系统的相应时间等特性是否满足特定的性能需求;
负载测试:通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力;Linux系统中通过top命令查看,load average:第一分钟内平均负载(待处理的线程数),第五分钟内平均负载,第十五分钟内平均负载;业界定义值超过cpu核数的4倍,这个时候负载就重了;
压力测试:指被测系统在一定资源(CPU/内存)饱和的情况下,系统的运行情况;与负载测试的区别是没有超负荷,在性能允许的范围内测试;
可靠性测试:被测系统在一定负载情况下长时间运行下运行情况;
配置测试:通过调整被测试系统软硬件的不同配置,找到一个最合适被测系统的配置或者获得被测系统在不同配置下的运行情况;比如配置线程数,由于系统本身的特性,比如上下文切换影响性能的考虑,并不是越多越好,而多少合适,是通过配置测试实验出哪个配置性能最好;
七、 用自己的话描述TPS、PV、UV的基本含义
TPS:每秒事务数,单位时间内被系统处理的事务数量,这里的事务只指一个动作;
PV:访问一个URL产生一个PV,不管此用户是同一个还是多个,只要点击了URL就有一个PV,即页面访问量;
UV:独立用户访问量,单个用户访问站点的所有页面,此用户可以产生多个PV,但算一个UV;日志分析中一般通过user-agent和IP来判断是否是一个用户;
八、并发用户数和在线用户数的区别是什么?
并发用户数:多个用户同时操作,会对系统造成负载;
在线用户数:系统在线人数,包括操作的人数和只登陆不操作(对系统不会造成负载)的用户;
九、用自己的话描述选择性能测试工具需要关注哪些方面
1、从成本上考虑,包括工具成本和学习成本,工具成本是工具是否开源,因为购买工具也是很花钱的,不是每个公司都可以支撑得了。学习成本就是在职人员是否具备使用这个工具的能力,相应的语言编写能力等,如果没有需要花费多久时间去学习等等,这都需要成本的;选择成本要在可接受范围内去选择工具;
2、通信协议的考虑,性能测试工具都是基于协议的,如果被测系统是基于标准的TCP/IP协议,那可以有很多工具选择,如SMTP/FTP/HTTP等可以选择相应的工具;如果被测系统是基于自有协议的,性能测试工具可能不支持,那就需要自己想办法去实现;
3、生命力,选择性能测试工具需要考虑他的活力,软件更新周期,市场占有率等,就是发展前途如何,可以持久使用,避免不必要的损失;
4、跨平台 ,类似于JAVA的跨平台能力,适合更多平台的客户;
十、性能测试工具比自动化测试工具更容易生成负载的原因是什么?
答:性能测试工具是基于协议的,不看前端操作,从后台去分析请求数据,所以通过协议可以从后台进行大量并发操作,产生负载;而自动化测试工具用的是对象识别技术,对前端的控件属性进行操作,如果想并发需要很多前端去操作,很不智能;
十一、描述基使用Loadrunner分别基于HTML-based script和URL-based script方式录制的区别和各自的使用场景。
使用HTML-based script模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,默认用户的行为,这种脚本看不上比较直观。使用URL-based script模式录制脚本,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求生成一个对应的方法,看上去比较复杂不是很直观;
通常基于浏览器的Web应用会使用HTML-based script模式来录制,而没有基于浏览器的Web应用,Web应用中包含了跟服务器进行交互的JAVAapplet 以及基于浏览器的但应用包含了向服务器进行通信的Javascript/VBscript代码,基于浏览器的应用中使用了HTTP安全协议等使用URL-based script模式进行录制;
十二、HTTP协议中的If-Modified-Since请求头的含义是什么?
LoadRunner中通过什么方式使得请求中包括If-Modified-Since请求头?
If-Modified-Since是判断缓存是否有更新,只有当所请求的内容在指定的日期之后又经过修改才返回它,否则返回304“Not Modified”应答通过。LR中通过设置运行设置中的缓存参数使得请求中包括此请求头
课堂笔记:
1、性能测试一般包括五个阶段:规划,创建Vuser脚本(包括测试环境准备),定义场景,执行场景,分析结果;
2、响应时间=客户端(种类太多,无法计算固定时间)+服务器端(性能测试工具可以获取到的时间)+网络(性能测试工具可以获取到的时间)
3、点击数:指请求数,不是指鼠标点击的次数,一次鼠标点击可能产生多个请求;
4、并发和并行:并行是同时执行,比如8CPU,同时执行8个进程,并发就未必,单CPU时可以同时干很多事情,但并不是并行的,但由于操作系统的中断功能会让你感觉单核时候也是同时执行,单核不能并行,多核时既有并发也有并行;