性能面试问题

1.负载测试步骤5个:规划测试计划——创建vuser脚本——定义场景——运行场景——分析结果;
2.性能测试:在一定的负载情况下,系统的响应时间等特性是否满足特定的性能需求;
3.压力测试:指被测系统在一定的资源(cpu,内存)饱和的情况下,系统的运行情况;
4.负载测试:通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力;
5.可靠性测试:被测系统在长时间运行下的情况;
6.配置测试:通过调整被测系统软硬件的不同配置,找到一个最适合北侧系统的配置或者获得北侧系统在不同配置下的运行情况;
7.吞吐量:单位时间内被测系统处理的业务或者请求数;
8.PV:(page view,页面访问量)访问一个url产生一个pv,每日每个网站的总PV量是形容一个网站规模的重要指标;
9.UV:(unique visitor,用户访问量),作为一个独立的用户,访问站点的所有页面均算作一个UV;
10.virtual user generator录制脚本,
11.什么是集合点?设置集合点有什么意义?设置集合点的函数是lr_rendezvous(“meeting”)
(1)在性能测试过程中,需要模拟大量用户同一时刻访问系统并同时操作某一任务,可以通过配置集合点来实现多个用户同时进行某操作,
(2)集合点可以在服务器上创建密集的用户负载,使ld能够测试服务器在负载状态下的性能;
12.什么是场景?场景的重要性有哪些?如何设置场景?
(1)场景用于模拟用户实际业务操作;(2)ld中场景有手工场景和面向目标的场景;
(3)选择场景类型,设置运行时设置、模拟用户数、加减压方式、持续时间,配置负载生成器;
13.为什么要创建参数?如何创建参数?
(1)ld在录制脚本时,只是记载了所有从客户端放送到服务器的数据,而在进行性能测试时,为了更接近真实的模拟现实应用,对于某些信息需要每次提交不同的数据,或者使用多个不同的值进行循环输入。这时,在LD中就可以进行参数化设置,以使用多个不同的值提交应用请求;
14.什么是关联?说下自动关联和手动关联的不同?
(1)简单说:就是把脚本中某些写死(固定)的数据,转换成动态的数据,或者说将前面语句的结果数据保存下来,然后在后面的语句提交请求时使用这些数据。需要关联的前提条件:客户端需要从服务器端返回数据中获取部分数据,并将这些部分数据处理后作为自己下一次请求的一部分发出。
(2)自动关联是在脚本录制过程中,vugen会根据已经制定好的规则,自动找出需要关联的数值或者脚本录制完成后,执行脚本一次,通过correlation studio自动找出需要关联的数据,并建立关联;而手动关联是需要录制两份相同业务流程的脚本,输入的数据要相同,利用windiff工具,找出两份脚本之间的不同之处,也就是需要关联的数据,再通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化;
15.如何找出哪里需要关联?结合项目实例
(1)录制两份相同业务流程的脚本,输入的数据要相同(2)利用windiff工具,找出两份脚本之间不同之处,就是要关联的数据(3)通过web_reg_param函数手动建立关联,将脚本中用到关联的数据参数化;16那个函数用来截取虚拟用户脚本总的动态值(手工关联)?web_reg_save_param函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别,提取动态数据,所以在做关联时,需要找出动态数据的左右边界字符串;
17.如何在负载测试模式下执行功能测试?
在负载测试模式下,可以通过同时运行数个虚拟用户,通过增加虚拟用户数,确定服务器在多大的负载量下,仍然可以正常运行,一般进行核心功能操作,验证核心功能是否正常;
18.什么是逐步递增?如何设置?
(1)虚拟用户数随着负载时间逐渐增加,可以帮助确定系统响应时间减慢的准确时间点;可以在“加压”选项卡中进行设置将设置更改为:每30s启动两个vuser;
(2)设置ramp up到scenario scheduling option
19.以线程方式运行的虚拟用户有哪些优点?
以线程方式运行的虚拟用户,在默认情况下,controller为每50个用户仅启动一个mmdrv进程,而每个用户都按线程方式来运行,这些线程用户将共享父进程的内存,这就节省了大量内存空间,从而可以在一个负载生产期上运行更多的用户。
20.什么是think time?有什么用处?
思考时间是真实用户在action之间等待的时间。例如:当一个用户从服务器接收到数据时,用户可能需要在相应之前等待几分钟回顾数据,这种推迟被称为思考时间;
21.标准日志和扩展日志的区别?
(1)standard log option:选择标准日志时,就会在脚本执行过程中,生成函数式的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项;
(2)扩展日志包括警告和其他信息。大型负载测试不要启用该选项,用扩展日志选项可以指定那些附加信息需要加载到扩展日志中;
22.响应时间和吞吐量之间的关系是什么?
吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和相应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大的响应时间差不多在同时出现;
23.如何在ld中配置系统计数器?
通过web资源监视器,利用这些监控器可以分析web服务器的吞吐量,点击率,每秒http响应数以及每秒下载的页面数;
24.并发:在同一时间点,支持多个不同的操作;


功能相关:
1.有个程序,发现在Windows上运行的很慢,怎么判别是程序存在的问题还是软件的问题?
(1)检查系统是否有中毒的特征;(2)检查软件/硬件的配置是否符合软件的推荐标准;
(3)确认当前的系统是否是独立,没有对外提供什么消耗CPU,内存资源的服务;
(4)如果是C/S或者是B/S 结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的;
(5)在系统没有任何负载的情况下,查看性能监视器,去人应用程序对cpu内存的访问情况;
2.beta测试与alpha测试有什么区别?
beta测试时软件多个用户在一个或者多个用户的实际使用环境下进行的测试。开发通常不再测试现场;
alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。
3.你认为做好测试计划工作的关键是什么?
软件测试计划就是在软件测试工作正式实施之前明确测试的对象,并且通过对资源、时间、风险、测试范围和预算等方面的总和分析和规划,保证有效的实施软件测试;
做好测试计划关键:目的,管理,规范;
4.bug生命周期:提交——确认——分配——修复——验证——关闭;
5.软件的安全性应该从那几个方面去测试?
(1)用户认证机制:如数据证书,智能卡,双重认证,安全电子交易协议;
(2)加密机制;
(3)安全防护策略:如安全日志,入侵检测,隔离防护,漏洞扫描;
(4)数据备份与恢复手段:存储设备,存储优化,存储保护,存储管理;
(5)防病毒系统;
6.如何减少测试人员跳槽带来的损失?
加强部门内部员工之间互相学习,互相学习是简历学习型组织的基本要求,是知识互相转移的过程。在此基础上,可以把个人拥有的技术以知识的形式沉淀下来,也就完成了隐形知识到显性知识的转化。
通常来说,企业能为员工提供足够大的发展空间时,如果不是待遇特别低,员工是不会主动离开企业的,因此因此想要留住员工,管理者应该吧员工的成长和企业的发展联系起来,为员工设定合理的发展规划并付诸现实。不过这个比较难,要有比较好的企业文化作为依托。
7.v模型:
用户需求——》需求分析——》概要设计——》详细设计——》编码
验收测试《——系统测试《——集成测试《——单元测试《——编码
8.比较下黑盒测试,百合测试,单元测试,集成测试,系统测试,验收测试的区别与联系
黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所以内部成分是否以经过检查。
单元测试是程序员自己来完成的,有责任为自己的代码编写单元测试,执行单元测试,就是为了证明这段代码的行为和我们期望的一致;
集成测试,也叫组装测试,联合测试,十单元测试的逻辑扩展。多个单元集成聚合。
系统测试是将经过测试的子系统装配成一个完整系统来测试,他是检验系统是否确实能提供系统方案说明书中制定功能的有效方法,最常见的联调测试;
验收测试,是部署软件之前的最后一个测试操作,验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务;
9.研发说不是bug,你如何应付?
开发人员说不是bug,有两种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动;二是这种情况不可能发生,所以不需要改动,这个时候尽可能说出bug的依据是什么如果被用户发现会出现什么不良后果,他们可能会给你很多理由,你也可以对他的解释进行反驳。我觉得应该坚持自己的立场,让问题得到最后的确认。




















 

你可能感兴趣的:(测试杂言)