(二)测试工具

16. 如何进行浏览器兼容性测试?

  正确回答通过率:38.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

1、兼容性测试含义
兼容性测试是指要测试的软件在不同的硬件平台上、不同的应用软件之间、不同的操作系统中、不同的网络环境中是否可以正常的运行、有无异常的测试过程。即是通常说的软件的可移植性。

2、兼容性测试分类
兼容测试主要包括:
a、浏览器兼容性测试:检查要测试的软件在不同浏览器上Web页面的样式和元素的展示效果以及交互是否正常;主流浏览器:windows下,IE 9以上、FireFox、Chrome。Mac下,Safari、Chrome、Firefox。
浏览器兼容性问题也可以被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的兼容问题。
你可能遇到过功能明明是正常的,换一个浏览器就不正常的情况。这是因为不同浏览器使用内核及所支持的HTML(标准通用标记语言下的一个应用)等网页语言标准不同;以及用户客户端的环境不同(如分辨率不同)造成的显示效果不能达到理想效果,功能不正常等。
b、屏幕尺寸和分辨率兼容性测试:检查要测试的软件在不同分辨率下能否正常显示;
c、操作系统兼容性测试:检查要测试的软件在不同的操作系统下功能是否正常,显示是否正确等;主流操作系统:windows系列、Mac OS X系列、UNIX/Linux系列、Android系列、IOS系列。
d、不同设备型号兼容性测试:针对于APP,由于移动设备型号众多,则需要测试要测试的APP在主流设备上能否正常运行,会不会出现崩溃的现象。

3.兼容性测试方法
兼容性测试,可以全手工测试兼容即:人工测试,主要是测试要测试的软件在主流浏览器和常用操作系统上的主流程和主界面。另外一种是借助第三方兼容性测试工具进行测试;
第三方 Web的兼容性测试工具,推荐IEtester(离线)、SuperPreview(离线)和Browsershots:browsershots.org(在线)。
IETester,是专门用于测试网页在IE浏览器各个版本中兼容性的工具,版本包含IE5.5至IE9的各个版本。
Spoon Browser Sandbox,点击你需要测试的浏览器环境,安装插件就可以进行测试了。帮助你测试网页在Safari、Chrome、Firefox和Opera浏览器中是否正常。
BrowserShots,一款免费的跨浏览器测试工具,捕捉网站在不同浏览器中的截图。最有名,最古老的浏览器兼容性测试工具。
Multiple IEs这款工具同样用于测试网页在IE浏览器各个版本的兼容性。

第三方APP的兼容性测试工具,推荐百度众测平台和云测平台,这两款测试工具里面包含了安卓和iOS的测试;测试很齐全,包括 功能测试 、深度兼容测试、 性能测试 、网络环境测试,可以模拟海量用户测试,还可以导入自己编写的 测试用例进行功能测试,里面还包括测试专家的测试(需要付费)。测试工程师只需要将打包好的apk或者IPA文件,上传到测试平台,选择需要测试的设备型号,开始任务即可;测试完成后会生成一份测试报告,可以查看错误页面和错误日志,如果需要调整,可以提交bug,告知程序员修改即可。

通常来说,人工测试工作量大,且覆盖不全;第三方测试工作虽说比较省时省力,但是在主功能和主流程测试的时候没有侧重点,不够灵活,很难发现一些隐藏的问题;所以将人工和第三方工具兼容性测试结合起来才是最好的兼容性测试方法。

4、浏览器的兼容性测试从哪些方面入手?
a、了解当前主流浏览器,挑选3-5个左右的浏览器进行兼容性测试
b、同浏览器的不同版本兼容性测试(一般测试最新版本)
c、检查界面元素的位置是否正确,与业务功能交互是否正常,排版布局是否合理美观
功能按钮(增删改查、导入导出、超链接、清空)等
各种控件的检查:日期和时间控件、搜索控件
有些特殊的图标功能比如:盘古系统上的画图功能是否正常(不覆盖区域图标、覆盖区域绘图、站点位置迁移图标、挪动地图坐标)等

5、兼容性测试注意事项
a、向前兼容和向后兼容,新旧版本的软件能否正常读取、加载和交互。
b、异构数据库兼容, 软件要考虑其对不同数据库平台的支持能力,软件是否可直接挂接,或需提供相关的转换工具。

17. 简述常用的浏览器兼容性测试工具 ?

  正确回答通过率:84.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 初级

具体可以按照以下工具集合部分展开说明
1、IETester
2、BrowserShots
3、Spoon Browser Sandbox
4、Browserstack
5、LambdaTest
6、Browserling
7、CrossBrowser Testing
8、Browsera

18. 说明有哪些测试工程日常比较易用的工具( 测试管理 )?

  正确回答通过率:54.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

测试管理包括我们测试人员做的任何事情。我们的日常活动包括:
1.创建和维护发布/项目周期/组件的信息
2.创建和维护测试每个特定版本的组件/周期,我们的需求,测试用例等。
3.建立测试资产之间的可跟踪性和覆盖率
4.测试执行的支持——创建测试用例集,捕获测试的执行状态等。
5.度量收集/ 报告-图表之间的分析
6.Bug跟踪/缺陷管理
1、QMetry
QMetry是一个集成的测试管理工具,您可以使用它来创建需求, 可以在多种平台和缺陷运行的测试用例(测试用例集)。在大多数情况下,它与许多主流的缺陷跟踪系统无缝集成,适合在自动化环境下使用。

2、TestRail
TestRail是一个集中在测试用例管理工具,您可以使用它来创建测试用例和用例集,跟踪执行和报告。此外,它集成了许多跟踪工具,在TestRail中,使得外部系统需求与测试用例关联起来。它附带了一个基于http API集成自动化测试的结果的收集功能。一个最常见的集成是Gemini,这是一个事件/票务管理系统(支持敏捷)。

3、JIRA
JIRA工具随时出现讨论any-management的过程——所有正确的理由。JIRA 有2个插件,支持测试管理流程。

4、Qtest
由QASymphony开发的qTest是基于云计算的测试管理工具,有各种典型的关键特性。qTest在连接器的帮助下,它可以集成JIRA整个端到端质量的解决方案

5、TestLodge
这是一个全面的测试用例管理工具,有4个关键方面——测试计划、需求、测试用例集/用例和测试运行。所以,正如你所看到的那样,这一切都是围绕着测试用例。对于所有其他的操作,它集成了许多主流问题管理工具,可以提供一个全面的解决方案。

6、惠普ALM/质量中心
惠普质量控制一直是多年来最常用的测试管理软件。它有着所有必要的特性,在许多方面,这是其他测试工具的标准。

7、Zephyr
这与我们前面所讨论的JIRA的附加组件Zephyr是相同的。应有的原因是因为它可以作为一个独立的单个产品。

8、Testuff
Testuff是Saas测试管理工具,有许多很酷的功能。典型的测试用例管理功能是默认包括的。此外,它有一个很酷的视频上传报bug的功能。集成了一个巨大的bug-trackers列表,如Bugzilla,JIRA,YouTrack, Mantis等等。它有一个支持自动化工具的API,像QTP,Rational Robot,Selenium、TestComplete等等。

9、Test Collab
这是一个基于web的测试用例管理工具, 因为它的 “Ajax 'ified接口(在软件制造商的原话),它的速度是一个关键特性。它简单易用,集成了所有主要的bug/问题/事件追踪器,是可定制的和具有良好的报告工具。

10、Gemini
这个工具的关键组件之一是支持测试和QA以及如项目计划、问题跟踪等其他方面。使用这个工具,您可以创建测试计划,测试用例,测试运行、可追溯性、测试运行报告等,还有各种集成和扩展。

11、PractiTest
这是一个端到端的测试和测试管理软件。您可以组织您的需求,可以创建测试,运行测试,跟踪缺陷等,使用这个工具。它可以很好地集成与三个主要的事件管理工具,比如JIRA,Bugzilla RedMine。

12、TestLink
这是为数不多的在市场上使用的开源测试管理工具。它是一个基于web的工具,要求管理、创建和维护测试用例,测试运行,跟踪bugs,报告,常见问题跟踪器等集成。

13、QAComplet
QAComplete是最强大的测试管理工具之一。这适合敏捷/传统、手动/自动化项目。你可以用它集成QTP TestComplete。对于自动化项目,你可以安排测试运行,远程注册,在任何主机上运行。还有一个详细的发布管理功能,提供了更好的分析。

14、Silk Central
这是一个由Borland生产的测试管理产品。一旦拥有Silk Central,就会满足你所有要求。它是robustness的化身,但它也挺昂贵的。它覆盖所有特性,包括跟踪、报告测试的创建、运行。它集成了许多源代码控制和问题跟踪系统,有额外的插件以扩展其功能自动化测试使用QTP 、WinRunner等等。它带有一个视频捕捉功能,支持SAP测试。

15、IBM Rational Manager
测试管理的产品,典型特征是——测试计划、设计、执行、跟踪和报告。它集成了许多合理的产品的自动化、源代码控制和bug跟踪

19. Jmeter参数化有哪几种方法

  正确回答通过率:33.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

1、可以通过函数助手来实现参数化,比如说像 _RandomString 这种随机函数。
2、通过 CSV 读取文档数据实现参数化。
3、通过配置元件、用户定义的变量来实现参数化。
4、通过前置处理器中的用户参数也可以实现参数化。

20. 如何用Jmeter做性能测试?

  正确回答通过率:62.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

1、我们先要做需求的分析,你要确定你们的这个产品的功能以及架构,还有我们的这个用户的这个分布的一个情况,通过这些,你能制定你的这个测试目标。
2、你就要开始搭建这个测试环境,因为我们的这个性能测试环境和功能测试环境、自动化测试环境是不能共用的,这是要独立搭建我们的测试环境的。
3、根据我们的这个接口来写我们的这个接口的脚本。
4、要对我们刚才写好的这个脚本来进行性能的转换,在这个里面要注意特别重要的一个点就是要加上性能场景的设计。
5、去搭建我们的监控平台,因为监控平台它是对整个过程的一些数据来进行一个监控与收集的,只有收集的这些数据你才能做接下来的第6步。
6、性能分析,分析的时候,我们要先从硬件、网络、配置,之后再来做我们的这个应用的一个分析,你不能说一上来就做应用分析,那你是分析任何问题你都分析不出来的。
7、我们要把整个这个过程所产生的所有的数据收集,最终整理成为一份报告来提交给我们的领导,那这个才是我们领导层所需要的整个过程的一份测试报告。

21. 如何用Jmeter录制脚本?

 正确回答通过率:60.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

1、在测试计划里添加线程组
2、在测试计划里添加非测试元件的 HTTP 代理服务器
3、配置代理服务器,端口可以设置成8888,把目标控制器选成测试计划>线程组,这样做的目的是录制的脚本直接生成在线程组下面,然后设置Requests Filtering(请求过滤器),若想排除一些我们不需要的东西,则可以点击添加建议排除,但这个也只能排除大部分的,小部分的还是排除不了
4、启动代理服务器
5、打开浏览器,对浏览器进行设置,设置对应的代理信息,地址:127.0.0.1,端口:8888,保存
6、访问网站,如 https://www.baidu.com/
7、查看线程组,可看到下面录制的脚本在增加
8、添加监听器,察看结果树
9、运行,看录制的脚本能否运行成功
10、把不是网站的脚本禁用,看运行是否还能成功
11、运行成功之后删除禁用的那些脚本

22. Jmeter和SoapUI接口测试有什么区别?

 正确回答通过率:72.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

1、它们的用例组织方式是不一样的,Jmeter 来说比较扁平,而 SoapUI 它最上层是工作空间,工作空间下面每一个会有一个项目,然后项目下面又可以添加多个TestSuite(测试套件)这种
2、在支持的接口类型和测试类型上面,Jmeter 和 SoapUI 工具差不太多,它们都可以支持 Soap 和 Rest 接口,也都可以进行接口的压力测试和功能测试
3、在流程控制方面,Jmeter 可以由 switch 控制器等一系列控制器和 beanshall 脚本进行一个流程控制,而 SoapUI 它一般可以用 Conditional Goto 以及 Groovy 脚本来进行一个流程控制
4、在断言方面,Jmeter 它的一个测试计划、线程组还有取样器都可以添加断言,SoapUI 每一个 request 可以添加断言
5、在脚本扩展能力,Jmeter 主要支持 Java,而 SoapUI 主要支持 Groovy

23. Jmeter和Postman接口测试有什么区别?

 正确回答通过率:57.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

1、它们的用例组织方式是不一样的,像 Jmeter 它的用例组织方式就比较扁平化,它没有测试集合和空间的一个概念,直接就是 TestPlan,而 Postman 它比较轻量级,主要是针对的是单个 http 请求
2、它们支持的接口类型以及测试类型也是有不一样的,Jmeter 相对来说比较强大一些,它可以支持 Rest 风格的接口,还有 Soap 类型的接口,以及它可以去测试接口测试功能,以及测试一个性能测试,而 Postman 它只支持 Rest 风格的接口,而且也基本上做的比较多的是功能测试
3、在流程控制上面它们也是不太一样的,比如说 Jmeter 它是通过像 switch 控制器等一系列控制器以及像 beanshall 脚本来实现一个流程控制的,而 Postman 通过 JavaScript 来进行一个流程控制
4、它们两个在脚本结果解析和展示以及在断言还有一些功能扩展性也是有很多的区别的

24. JMeter是怎么实现接口之间关联的?

 正确回答通过率:91.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

有两种方式,即正则表达式提取器和json提取器,比如说我们要获取一个Token,可以把获取到的Token值赋予一个变量,在下一个接口调用这个变量即可,如果需要提取的文本是页面上某元素的属性值,建议使用json提取器,如果需要提取的文本在页面上的位置不固定,或者不是元素的属性,建议使用正则表达式提取器

25. Jmeter 用户定义的变量和用户参数的区别?

 正确回答通过率:90.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 初级

1:用户定义的变量,在启动运行时获取一次值,在运行过程中,不再动态获取值
2:用户参数在启动时获取一次值,在运行过程中,每次使用该参数都会动态获取一次值

26. 解释什么是Jemter采样器(Samplers)和线程组(Thread group)?

  正确回答通过率:85.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

线程组:对于任何测试计划,线程组元件都是JMeter的开始部分。这是JMeter的重要元件,你可以在其中设置多个用户和时间来加载线程组中给出的所有用户。

采样器:采样器生成一个或多个采样结果;这些采样结果具有许多属性,例如经过时间、数据大小等。采样器允许JMeter通过采样器将特定类型的请求发送到服务器,线程组决定需要发出的请求类型。一些有用的采样器包括HTTP请求、FTP请求、JDBC请求等等。

27. 解释什么是Jemter预置处理器元件?列出一些预处理器元件?

 正确回答通过率:83.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

预置处理器是在采样器执行之前发生的事情。为了在执行采样请求之前对其进行配置,或者用于更新未从响应文本中提取的变量,需要使用预处理器元件。
一些预处理器元件是:

  • HTTP URL重写修饰符
  • HTTP用户参数修饰符
  • HTML链接解析器
  • BeanShell PreProcessor

28. 说明JMeter中的计时器是什么,计时器的类型是什么?

 正确回答通过率:57.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

默认情况下,JMeter线程将连续发送请求而不会暂停。为了在请求之间暂停,使用了计时器。使用的一些计时器包括恒定计时器,高斯随机计时器,同步计时器,均匀随机计时器等。

29. 简述什么是JMeter中的断言?断言的类型有哪些?

 正确回答通过率:77.0%

[ 详情 ] 推荐指数: ★★ 试题难度: 初级

断言有助于验证被测服务器是否返回了预期结果。
JMeter中一些常用的断言是:

  • 响应断言
  • 持续时间断言
  • 大小断言(Size Assertion)
  • XML断言
  • HTML断言

30. 解释如何在JMeter中执行尖峰测试(Spike testing)?

 正确回答通过率:36.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

通过同步,可以实现计时器JMeter尖峰测试。同步计时器将阻塞线程,直到阻塞了特定数量的线程,然后将它们全部释放,从而产生了巨大的瞬时负载。尖峰测试 也可以称为冲击测试,反复冲击服务器。指的是在某一瞬间或者多个频次下用户数和压力陡然增加的场景。

31. 如何在JMeter中捕获身份验证窗口的脚本?

 正确回答通过率:95.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

通常,可以通过录制来捕获脚本:
首先,必须在Testplan(测试计划)中使用 Threadgroup,然后在 Workbench(工作台) 中使用HTTP代理服务器;
之后,在“全局设置”框中设置端口号(如8911),然后在 IE高级选项>连接>局域网设置中 开启 代理设置,并将地址修改为localhost,端口改为8911。
然后,HTTP代理服务器中选择 目标控制器 Testplan>Threadgroup,然后启动HTTP代理服务器并运行应用进行登录。

32. 列出几个JMeter监听器?

  正确回答通过率:72.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

JMeter监听器是:集合报告、汇总报告、查看结果树、用表格查看结果、图形结果、BeanShell Listener、摘要报告等

33. JMeter中的CSV数据文件是什么?如何使用CSV数据文件?

 正确回答通过率:70.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

CSV数据文件是一种文本文件,可以包含测试数据和变量。测试人员可以使用CSV数据文件来模拟不同类型的用户和业务场景,例如登录、购物车、结账等。要使用CSV数据文件,需要在测试计划中创建CSV数据文件集和CSV数据集配置元素,并将其与取样器关联

34. JMeter中的远程测试是什么?如何进行远程测试?

 正确回答通过率:40.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 高难

远程测试是一种在不同计算机之间共享测试负载的方法,可以帮助测试人员模拟更多的用户和负载情况。要进行远程测试,需要在主机上启动JMeter服务器,并在客户机上配置JMeter客户端连接到JMeter服务器。

35. JMeter中的分布式测试是什么?如何进行分布式测试?

 正确回答通过率:35.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 高难

分布式测试是一种在多个计算机上同时执行测试的方法,可以帮助测试人员模拟更多的用户和负载情况。要进行分布式测试,需要在每个计算机上启动JMeter服务器,并在一个计算机上启动JMeter客户端,将测试计划上传到JMeter服务器上,并在所有计算机上执行测试。

36. JMeter中的HTTP代理服务器是什么?如何使用HTTP代理服务器录制测试脚本?

 正确回答通过率:36.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 高难

HTTP代理服务器是一种用于在浏览器中记录HTTP请求并生成测试脚本的工具。在JMeter中,可以使用HTTP代理服务器来录制测试脚本。可以将浏览器的代理设置为JMeter的HTTP代理服务器地址和端口,然后在浏览器中访问网站并执行操作,JMeter就会记录HTTP请求并生成测试脚本。

37. 简述Wireshark的作用和工作模式 ?

 正确回答通过率:48.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。
wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容,总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark

抓包原理
本机环境:直接抓包本机网卡进出流量
集线器环境:一台服务器向另一台服务器发送数据包时经过集线器,集线器会把数据包发送给连接集线器的所有电脑
交换机环境:和集线器的原理差不多,但是更精确,可以配置端口镜像,ARP欺骗,MAC泛洪,其中端口镜像是比较常用的,MAC泛洪是发一些垃圾包,垃圾包携带大量MAC地址,将想要抓包的电脑的MAC挤出交换机的MAC列表,交换机找不到对应的MAC地址,就会给所有的MAC列表的电脑发送

38. Fiddler能做什么?具体工作原理

  正确回答通过率:74.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

Fiddler是一款功能强大的抓包工具,能获取和记录客户端与服务器之间的HTTP(及HTTPS)请求。
1、抓包:抓取HTTP请求和响应内容。
2、改包:设置断点,拦截HTTP请求或响应报文,修改后再放行。
3、模拟各种客户端:fiddler可修改user-agent内容,伪装成各种客户端发送请求。
4、弱网测试:通过限制HTTP请求或响应的速度,来模拟网络延迟。
Fiddler实际上是一个web代理服务器,代理地址为127.0.0.1,默认端口为8888。代理服务器位于Web浏览器和Web服务器中间,扮演“中间人”的角色。
1、当Fiddler启动抓包时,会将本机internet连接中,设置为使用代理服务器,地址为127.0.0.1,端口号为8888
2、当Fidder关闭抓包时,将本机internet选项中,取消代理设置。
Fiddler只能抓HTTP和HTTPS协议的包,其他协议的包是抓不到的,比如qq聊天时候发送的消息,就是抓不到的。

39. Fiddler如何实现弱网测试?

  正确回答通过率:72.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

在Fiddler中rules右键点击Customize Rules(自定义规则),然后双击大概然后双击打开 Customize Rules.js文档,修改文档中每上传或者是下载1kb数据所需要的时间来模拟我们的弱网环境,然后再rules–performance(性能)下面点击simulate modem speeds(模拟调制解调器速度)开启弱网环境的模拟 ,通过以上三步,就可以实现弱网测试场景的构造

40. Fiddler如何设置抓取https请求?

  正确回答通过率:77.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 初级

ools–》Options–》HTTPS,勾选CaptureHTTPS CONNECTs、Decrypt HTTPS traffic 、ignore server certificate errors(unsafe),点击OK,会弹出证书直接确认即可。

41. LoadRunner支持哪些协议?

  正确回答通过率:77.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

从LoadRunner 9.5开始,支持以下协议。这将随着未来的发布而增加。面试官并不是在寻找除了少数人之外的所有人(比如5-7协议)。
应用程序部署解决方案:适用于Citrix协议。
客户端/服务器:用于DB2 CLI,DNS,MS SQL,ODBC,Oracle(2层),Sybase
Ctlib,Sybase Dblib和Windows套接字协议。
自定义:适用于C模板,Visual Basic模板,Java模板,
Javascript和VBScript类型脚本。
分布式组件:用于COM / DCOM,Corba-Java和Rmi -Java协议。
电子商务:适用于FTP,LDAP,Palm,Web(HTTP / HTML),Web服务和双Web / Winsocket协议。
Enterprise Java Bean:用于EJB 测试和Rmi-Java协议。
ERP / CRM:对于Baan,Oracle NCA,Peoplesoft-Tuxedo,Peoplesoft 8,
SAPGUI,SAP-Web和Siebel(Siebel-DB2CLI,Siebel-MSSQL,Siebel-Web和Siebel-Oracle)协议。
遗留:用于终端仿真(RTE)。
邮件服务:Internet邮件(IMAP),MS Exchange(MAPI),POP3和SMTP。
中间件:Jacada和Tuxedo(6,7)协议。
流媒体:适用于MediaPlayer和RealPlayer协议。

42. LoadRunner中使用了哪些常见组件?

 正确回答通过率:93.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 初级

Vuser生成器 - 用于生成脚本
控制器 - 用于创建和执行方案
分析器 - 分析结果。
代理是主机和控制器之间的接口。

43. 开发Loadrunner-Vuser脚本的过程是什么?

  正确回答通过率:50.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

开发vuser脚本有四个步骤。
1 - 记录Vuser脚本。
2 - 播放/增强录制的vuser脚本。
3-定义各种运行时设置并进行检查。
4-将脚本合并到LoadRunner方案中。

44. 将Loadrunner-Vuser作为进程和线程运行有什么区别?哪种运行Vuser更有利?

 正确回答通过率:36.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 高难

当Vuser作为进程运行时,会为每个Vuser将相同的驱动程序加载到内存中。这将占用大量内存,并将限制您可以在单个生成器上运行的Vuser数。
当Vuser作为线程运行时,只有一个驱动程序实例由给定数量的Vuser共享。您可以使用多线程模式在单个生成器上运行多个Vuser。

45. Loadrunner“Vuser-init”的意义是什么?

 正确回答通过率:89.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

Vuser-init在运行实际应用程序之前记录也称为初始化操作的预操作。

46. 如何在LoadRunner中设置Vuser的数量?

 正确回答通过率:74.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

您可以在创建方案时设置控制器部分中的Vuser数。控制器部分还提供了许多其他高级选项,如加速,降低Vuser。

47. 解释什么是Loadrunner显示器?

 正确回答通过率:84.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

监视器用于“监视”性能瓶颈。它们用于Load Runner的Controller部分

48. LoadRunner中有哪些类型的检查点?

 正确回答通过率:65.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

LoadRunner提供两种类型的检查点
a)图像检查点:此检查点将在运行时验证页面上是否存在图像
b)文本检查点:此检查点将在运行时验证页面上是否存在文本字符串
上述两个检查点都可以在Vugen中添加。

49. 解释什么是Loadrunner-Rendezvous点?

 正确回答通过率:32.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

Rendezvous点是Synchronization / Wait point。集合点指示Vuser在测试执行期间等待多个Vuser到达某个点,以便它们可以同时执行任务。
这样做的意义在于仅模拟场景的特定部分的一些重负载并测试应用程序的行为

50. 您如何利用Loadrunner识别性能瓶颈?

  正确回答通过率:73.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

可以使用监视器检测性能瓶颈。
这些监视器可能是应用程序服务器监视器,Web服务器监视器,数据库服
它们有助于找出我们场景中的问题区域,这会导致响应时间增加。
所做的测量通常是性能响应时间,吞吐量,命中/秒,网络延迟图等

51. LoadRunner中的事务和事务实例有什么区别?

 正确回答通过率:73.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

事务用于衡量某些语句执行之间的时间
事务实例用于性能分析

52. Load Runner中的经过时间是多少?

 正确回答通过率:77.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

经过的时间表示自当前事件发布以来已经过了多长时间,并且对于不同的屏幕进行了不同的测量,如下所示 -
在场景状态窗口中 - 经历的时间是从您点击“开始场景”或“初始化/运行Vuser?”的那一刻开始计算的。按钮。
在“Vuser”窗口中,从Vuser进入“运行”状态开始计算经过时间。

53. Loadrunner - Overlay图和Correlate图有什么区别?

 正确回答通过率:54.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 高难

叠加图:它将覆盖共享共同x轴的两个图的内容
关联图:它将两个图的Y轴相互绘制

54. Loadrunner 中 lr_error_message和lr_debug _message有什么区别?

 正确回答通过率:56.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

lr_error_message - 向LoadRunner Controller的“输出”窗口发送错误消息
lr_debug _message - 将调试消息发送到LoadRunner Controller的“输出”窗口

55. Loadrunner中解释什么是Rendezvous点?

 正确回答通过率:30.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

Rendezvous: 集合点,若在一个动作脚本之前设置了一个集合点,则只有在该动作之前达到了处于等待状态的指定用户数量,才能继续执行该脚本动作,集合点的插入位置是在脚本录制时(Vugen)实现的,而集合点的参数设置是在scenario(Controller)中实现的。

56. Loadrunner 关联 ?

 正确回答通过率:56.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。也是把脚本中某些写死的数据,转变成动态的数据。
什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果。

例如:
1.登录字符串。带有会话 ID 或时间戳等动态数据的登录字符串。
2.日期/时间戳。使用日期或时间戳或者其他用户凭据的任意字符串。
3.常见前缀。后跟字符串的常见前缀,如 SessionID 或 CustomerID

57. LoadRunner的所有组件有哪些 ?

  正确回答通过率:77.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

loadrunner三大组件:

1、脚本用户脚本(Virtual user generator):录制、调试脚本

测试人员被LoadRunner的Vuser(虚拟用户)代替,测试人员执行的操作以Vuser Script(虚拟用户脚本)的方式固定下来。一条计算机可以运行多个Vuser,因此LoadRunner又减少了性能测试对硬件的要求。
Vuser在方案中执行的操作是用Vuser脚本描述的。运行场景时,每个Vuser去执行Vuser脚本。Vuser脚本记录了用户的动作,并且包含一系列度量并记录服务器性能的函数,从而方便计算性能指标。这就像一个真实的用户一边做操作,一边拿着秒表记录时间一样。

2、控制台(controller):设置场景参数,管理虚拟用户
是运行性能测试的司令部,Controller负责生成性能测试场景,管理和协调多个虚拟用户,在实际运行时,Controller运行任务分派给各个Load generator,同时还联机监测软件系统各个节点的性能,并收集结果数据,提供给LoadRunner的Analysis.

①Load generator:就是pc,要利用各pc机的资源,比如一台虚拟机可以模拟出的用户数为1000人,若要对5000人进行在线测试,则可以将其他的pc联入,输入其ip地址即可。
在Controller中,”Scenario Scripts”的Load Generators中点击”Add”,输入ip地址;然后点击工具栏的load generator,点击connect进行连接,即可利用该物理机的资源。(新物理机要有load generator软件)
Load generator,通俗来讲,是controller的“手下”,Controller发号命令,Load generator负责实施执行。通常在一台机器上安装了LoadRunner后,就自动安装了Load generator,而一个Controller可以控制多态机器上的Load generator,让他们同意听从指挥,共同完成任务。
②代理程序(Agent):部署在各个客户端,协同得到步调一致的虚拟用户
在load generator中,我们知道Controller可以向它发布命令,各物理机要能听到,就用的是代理程序,所以要启动该程序。
agent负责实时侦听来自控制器的指令,以达到协调各压力生成器中虚拟用户的作用
③在做联机测试时,联机的机器要满足两个条件:
1)安装load generator
2)启动agent:所有程序—>HP LoadRunner—>Advanced Settings—>LoadRunner Agent Process

3、结果分析器(analysis):生成测试报告
④监控器:在性能测试过程中,要监控所有的服务器的重要资源。
⑤ 以管理员身份打开Controller后,有Select Scenario Type
①Manual Scenario Type手动设置场景(create Vuser groups 、specify the scripts、load generators、number of Vusers)
–Use the Percentage mode…:定义虚拟用户总数,为每个脚本分配一定比例的虚拟用户。比如:虚拟用户总数为20,有两个脚本001_login 40% 和002_lookFlight 60%(若修改其中一个比例,另一个比例会自动1-这个比例)
因为Controller启动缓慢, 若要进行模式转化,则Senario–>Convert Scenario to the Vuser Group Mode 再将脚本引入即可。
–若不选择上面的,则会按个数,比如:虚拟用户总数为20,有两个脚本001_login 8 和002_lookFlight 16(若修改其中一个个数,另一个个数会自动更改)
–企业中,一般的并发测试达到几百用户居多,所以百分比用的较少
②Global-Oriented Scenario:定义一个在测试需要实现的目标,lr会自动建立场景。这种方式会隐式自动设置一些内容,所以运行过程容易出错,出错时还得自己查找错误,不如手动设置方便。

58. 如何调试LoadRunner脚本?

  正确回答通过率:42.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

VuGen包含两个选项帮助调试VuGen脚本—通过逐步命令和断点运行某一步。选项对话框中的Debug设置,使我们决定在场景运行期间进行跟踪的程度。Debug信息被写到输出窗口,我们可以使用lr_set_debug_message函数手动设置你的脚本中的信息类

59. Loadrunner vuser_init和vuser_end操作包含哪些内容?

 正确回答通过率:50.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

Vuser_init操作包含登录服务器的过程,Vuser_end部分包含注销过程。

60. Loadrunner在面向目标的负载运行者场景中,所有类型的目标是什么?

 正确回答通过率:85.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

Load Runner为您提供五种不同类型的目标:
并发Vuser数
每秒点击次数
每秒的交易次数
每分钟的页数
交易响应时间

61. 简述什么是Load Runner测试过程?

  正确回答通过率:53.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

以下是LoadRunner中的测试过程:

计划负载测试
创建Vuser脚本
定义场景
运行场景
分析结果

62. Loadrunner如何加载负载转轮代理?

 正确回答通过率:71.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

运行方案时,LoadRunner控制器会指示远程代理程序调度程序启动LoadRunner代理程序。控制器指示LoadRunner代理初始化,运行,暂停和停止vuser。

以下是Load Runner的优点:
减少人为干预
减少系统的要求
有助于更好地利用时间和金钱
有效利用自动化
单点执行

63. Loadrunner场景中的vuser是什么?

 正确回答通过率:95.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

vuser是可以模拟真实用户的虚拟用户。代替真实用户的操作客户端软件的虚拟用户,例如IE使用HTTP协议向IIS或Apache Web服务器发送请求

64. Loadrunner可以对运行时设置进行哪些更改?

  正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

Loadrunner可以进行四种运行时设置:

起搏:这包含迭代计数。
日志:日志记录可以设置为标准或禁用。
思考时间:能够将思考时间设置为被忽略或替换。
常规:允许为进程或多线程设置Vuser。

65. LoadRunner中有多少种类型的图表?

 正确回答通过率:63.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

LoadRunner有五种类型的图表:

网络延迟时间图 - 显示请求和响应之间经过的时间
两个事务响应时间图 - 一个用于加载的转换响应时间图,另一个用于百分位数
点击/秒图表 - 显示应用程序流量
页面下载/第二个图表 - 显示每秒下载页面的速率

66. Loadrunner将Vuser脚本作为线程运行有什么好处?

 正确回答通过率:52.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

将Vuser脚本作为线程运行的优点是允许将更多Vuser用于一个负载生成器。作为进程运行Vuser脚本会占用大量内存,因为所有加载的脚本都使用相同的驱动程序。

这限制了可以在一个生成器上运行的Vuser脚本的数量

67. Loadrunner Overlay图和Correlate图有什么区别?

 正确回答通过率:67.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

叠加图:

叠加图具有一个X轴和2个Y轴。合并图表上的左Y轴显示当前图形的值,右Y轴显示合并图形的Y轴值。

关联图表:

有两个图形,活动图形的Y轴成为合并图形的X轴。合并的图形的Y轴变为合并图形的Y轴

68. Monkey测试流程?

  正确回答通过率:58.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

1). 查看设备是否已连接:adb devices
2). 测试前首先关闭MTK log,将sdcard卡和手机内存中的旧的log清理赶紧
3). 了解并得到包名
4). 运行测试稳定性命令: adb shell monkey -p 包名 -v 运行次数(多个参数的组合形成不同的用例以求最大的覆盖)
5).当崩溃或无响应时分析monkey日志

69. Monkey如何获取包名?

 正确回答通过率:77.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

1)获取手机上的所有包名信息。
adb shell pm list packages
2) 获取手机上包含xxx信息的包名
adb shell pm list packages |findstr xxx
3) 在不知道包名的前提下获取包名,先打开需要查找的APK后,敲入一下命令
adb shell dumpsys windows w | findstr name=
4)对获取到的包名执行随机点击事件
adb shell monkey -p com.android.bbkcalculator 3000 >e:\123.txt (先在E盘创建个123.txt文件,本句话的意思是:当对此com.android.bbkcalculator包执行操作3000次时,将日志记录到指定的E盘123.txt文件中)

70. Monkey如何模拟手动操作?

 正确回答通过率:71.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

–throttle参数
语法:adb shell monkey -p 包名 --throttle 1000 1000
eg: adb shell monkey -p com.android.bbkcalculator --throttle 1000 1000
注意:前面一个1000是毫秒数,后面一个1000是执行次数,意思是对指定的APK 执行1000次 ,每次延时1秒,进行随机操作。

71. Monkey杀死进程的方法 (force-stop 和clear) ?

 正确回答通过率:95.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

1) 根据包名杀死进程的命令。(此命令只是将程序停止工作)
adb shell am force-stop 【包名】
注意:这种方法会强制停止APP进程,不会清除APP进程在系统中产生的数据
2) 杀死后台进程的命令
adb shell pm clear 【包名】
执行完成以后打开手机确定一下

72. 如何重现Monkey中发现的错误?

 正确回答通过率:56.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 高难

使用seed
语法:adb shell monkey -p 包名 -s 50 100
eg: adb shell monkey -p com.android.bbkcalculator -s 50 100
注意:seed值 可以简单形象的理解为flag,建立一个标签。一般用于monkey跑命令中。我第一次设定这个seed 值等于100,去跑monkey命令,就会对指定的APP程序随机点击100次,跑随机事件;
第二次我跑命令的时候,还是用这个seed值,那么就会跟一次跑随机事件会一模一样,是个伪随机事件。 Monkey测试1:adb shell monkey -p com.android.bbkcalculator –s 50 100
Monkey 测试2:adb shell monkey -p com.android.bbkcalculator –s 50 100 也就是说着两个命令执行的事件顺序是一模一样的! -s 代表 seed,50由自己随意定义

73. Monkey如何控制事件流所占比?

 正确回答通过率:75.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

–pct-touch等pct参数
语法: adb shell monkey -p 包名 --pct-touch 100 10
eg: adb shell monkey -p com.android.bbkcalculator --pct-touch 100 10

74. Monkey 如何将测试报告记录在本地 ?

 正确回答通过率:52.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

将命令改为: adb shell monkey –p com.android.bbkcalculator –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 10 >D:\monkeylog.txt

75. 用Monkey做APP测试,怎么做的?如果有问题的话怎么定位?

  正确回答通过率:64.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 中级

使用monkey来做稳定性测试的,在跑monkey前,先使用adb logcat -c清空手机的logcat日志接下来,使用adb logcat -v time获取logcat日志并导入本地文件使用monkey运行被测应用:adb shell monkey -p 包名 -v 10万次 并将执行结果导入到本地

试完成后查看monkey日志,如果说它跑的次数跟我设的次数不一样.就说明monkey中途跑失败了。那我就要去看看monkey日志中有没有crash或者anr的关键字,如果有还需定位到是什么原因导致的anr或者crash的问题。并且将相关日志和logcat日志与进程号提交给开发定位,如果是anr的问题,还需要从安卓中获取/data/anr/traces.txt文件提交给开发定位。

76. 解释什么是APP测试工具 adb ?

  正确回答通过率:89.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

adb(Android Debug Bridge)是android sdk的一个工具,即调试桥,方便调试设备或调试开发的Android APP;
adb是用来连接安卓手机和PC端的桥梁,要有adb作为二者之间的维系,才能让用户在电脑上对手机进行全面的操作;(用这个工具可以直接操作管理android模拟器或者真实的android设备)
Android的初衷是用adb这样的一个工具来协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用资源、在设备执行shell命令等功能。
你可以在Android SDK/platform-tools中找到 adb 工具或下载ADB。

adb三大组件
1:客户端
该组件发送命令,客户端在开发计算机上运行,可以通过发出 adb 命令从命令行终端调用客户端。
2: 后台程序
该组件在设备上运行命令,后台程序在每个模拟器或设备实例上作为后台进程运行。
3:服务器
该组件管理客户端和后台程序之间的通信,服务器在开发计算机上作为后台进程运行。
adb工具位于SDK目录下的platform-tools目录,有跟adb相关的三个文件:

77. adb如何连接Android设备?

 正确回答通过率:91.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

要去通过adb去控制/操作设备,必须要保证adb连接上设备

1、模拟器: 不需要手动设置,连接模拟器端口: adb connect 127.0.0.1:7555(7555为mumu的端口)
2、真机: 通过USB连接设备与电脑、安装Android手机驱动、设备启用USB调试,列出已连接的设备: adb devices

78. Selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

 正确回答通过率:52.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 高难

1.添加元素智能等待时间 driver.implicitly_wait(30)
2.添加强制等待时间(比如python中写 sleep)
3.try 方式进行 id,name,clas,x path, css selector 不同方式进行定位,如果第一种失败可以自动尝试第二种

79. 如何提高Selenium脚本的执行速度?

 正确回答通过率:75.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

代码优化,多任务,分布式部署都是可以提升脚本执行速度的。

80. 列举什么项目适合做ui自动化测试?

 正确回答通过率:77.0%

[ 详情 ] 推荐指数: ★★★★★ 试题难度: 中级

需求变动不频繁 前端代码变更维护不方便
项目周期长 项目短,上线之后不需要再去测试
项目需要回归测试 不用回归测试的也不需要写自动化

81. UI自动化测试在什么阶段开始?

 正确回答通过率:74.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

手工测试完成之后才做自动化测试,相当于是编写自动化测试代码(通过手工测试能够清楚的知道自动化测试的步骤以及结果

82. Selenium中有哪些验证点?

 正确回答通过率:76.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

Selenium主要有3种验证点
① 检查页面标题
② 检查某些文字
③ 检查某些元素(文本框,下拉菜单,表等)

83. find_element()和find_elements()方法有什么区别

 正确回答通过率:85.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

两个都是查找元素的方式
findelement()查找一个页面元素,只会返回WebElement对象findelements()查找页面是所有符合匹配的元素,返回元素集合

84. 如何在 Chrome控制台中打开 paint flashing?

 正确回答通过率:54.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 高难

打开开发者工具,按键盘上的Esc键打开控制台面板,选择 rendering标签栏,即可看到 paint flashing选项。

85. Chrome开发者工具中,常用的面板有哪几个?

  正确回答通过率:77.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

Element:主要用来调试网页中的HTML标签代码和CSS样式代码。
Network:查看网页的HTTP通信情况,包括Method、Type、Timeline(网络请求的时间响应情况)等。
Source:查看 JavaScript文件,调试 JavaScript代码。
Timeline:查看 JavaScript的执行时间、页面元素渲染时间等。
Profiles:查看网页的性能,比如CPU和内存消耗。
Resources:查看加载的各种资源文件,如 JavaScript文件、CSS文件、图片等。
Audits:分析当前网页,快速地分析出哪些资源被使用、哪些资源没有被使用,然后提出建议。
Console:查看错误信息,打印调试信息,调试 JavaScript代码,查看 JavaScript API。

86. 如何用 Chrome模拟设备屏幕尺寸?

 正确回答通过率:80.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 中级

如果需要测试某种明确的机型, Chrome新版的 Emulation就可以派上用场了。
如果 Emulation面板需要模拟地理位置、加速计等功能,打开 DevTools界面后按下Esc键即可打开分裂视图。打开 DevTools界面之后,单击“手机图标”即可进入 Chrome手机模拟器

87. 解释如何对IE浏览器进行网页调试?

  正确回答通过率:90.0%

[ 详情 ] 推荐指数: ★★★ 试题难度: 初级

SuperPreview,主要用于HTML代码、CSS代码的调试和各个浏览器(目前只能针对IE6~IE8)的页面呈现测试。
Internet Explorer Collection,主要用于 Internet Explorer浏览器(IEl~IE8)各个版本的页面呈现测试。
Developer Toolbar,主要用于HTML代码、CSS代码和 JavaScript代码的调试。
IE WebDeveloper,主要用于HTML代码、CSS代码和 JavaScript代码的调试。
IE Web Developer可以让你检查和编辑 HTML DOM,显示错误信息、日志信息,显网站源代码,监视DHTML事件和HTTP流量。它的功能可以和火狐中的Firebug相媲美,甚至有些功能还强于 Firebug。
IETester,主要用于 Internet Explorer浏览器各个版本的页面呈现测试。
VS2008,主要用于 JavaScript代码的调试。
DebugBar,主要用于HTML代码、CSS代码和 JavaScript代码的调试

88. 简述什么是YSlow工具 ?

 正确回答通过率:92.0%

[ 详情 ] 推荐指数: ★★★★ 试题难度: 初级

首先, YSlow是一个工具,也可以认为它是一个插件,它是基于 Mozilla Firefox上 Firebug插件的一个插件。
它出现的主要目的就是检测页面的性能。它让用户可以就近取得所需的内容,解决网络拥挤的状况,提髙用户访问网站的响应速度。其次,雅虎在 Etags的配置上也有独特之处,它声明网页对象过期。
也就是说,当用户从服务器取数据的时候,如果文件变化了,就给他反馈新的文件。如果文件没有变化,只须告诉客户端没有变化即可,不必再把文件取回来,这样就节省了大量的网络带宽和资源。
另外只要将那些在加载过程中要执行的脚本放到底部,就可以实现最大数量的并行下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/391487.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADC的介绍和工作原理

一,什么是ADC? Analog-to-Digital Converter,指模拟/数字转换器 什么是ADC: ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 SUCH AS: 12 位 ADC 是一种逐次逼近…

C# Solidworks二次开发------设置按键打开模型查询

一、代码 public void Open_File(string FileNmae) {Process.Start("explorer.exe", FileNmae); }Open_File("路径"); 二、内容 这个代码很简单,我使用其主要的作用是设置一个按键,可以快速的查看我们已生成的三维模型&#xff0…

JS使用 navigator.clipboard 操作剪切板

注意:需要在安全域下才能够使用,比如:https 协议的地址、127.0.0.1、localhost safari浏览器需要打开配置,在地址栏输入 about:config,搜索 clipboard,将 asyncClipboard 由 false 改为 true,然…

C语言初阶(11)

1.结构体定义 结构体就是一群数据类型的集合体。这些数据类型被称为成员变量。结构的成员可以是标量、数组、指针,甚至是其他结构体。 2.结构体的声明和结构体变量命名与初始化 结构体声明由以下结构组成 struct stu {char name[12];int age; }; 结构体命名有两…

算法通关:017_2:二叉树及三种顺序的非递归遍历

文章目录 题目思路运行结果 题目 二叉树及三种顺序的非递归遍历 思路 import java.util.Stack;/*** Author: ggdpzhk* CreateTime: 2024-08-04* 二叉树非递归版本*/ public class _017_Tree2 {public static void main(String[] args) {TreeNode head new TreeNode(1);head.…

keil编程中#pragma NOAREGS的作用和优点

参考 功能 不直接操作内存地址 #pragma NOAREGS在Keil中的使用含义是禁用自动分配寄存器,开发人员指定控制的寄存器。‌例如中断的执行使用的寄存器需要人为的指定,避免分配同样的寄存器导致数据错误。对寄存器R0到R7不直接操作寄存器地址&#xff0c…

学习笔记-Cookie、Session、JWT

目录 一、验证码的生成与校验 1. 创建生成验证码的工具类 2. 写一个 Controller 3. 实现验证码验证 1. 获取验证码 2. 验证码请求过程 3. 验证码的校验 4. 原理说明 5. 验证 6. 总结 二、JWT登录鉴权 1. 为什么要做登录鉴权? 2. 什么是 JWT 3. JWT相比…

Open Interpreter - 开放解释器

文章目录 一、关于演示它是如何工作的?与 ChatGPT 的代码解释器比较 二、快速开始三、更多操作1、互动聊天2、程序化聊天3、开始新的聊天4、保存和恢复聊天5、自定义系统消息6、更改模型7、在本地运行 Open Interpreter终端Python上下文窗口,最大令牌 8、…

【Golang 面试 - 进阶题】每日 3 题(十四)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

python pip怎么安装包

按WinR键打开运行窗口,输入“cmd”,再按回车键,打开命令行窗口。 找到pip安装路径。 Python2/Python3安装路径是相同的,都在x:\Python xx\Scripts路径下。 拖动pip主应用程序到命令行窗口。 输入“install 模块/包名”&#xff…

【Golang 面试 - 进阶题】每日 3 题(十)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

PCIe总线-RK3588 PCIe RC初始化流程分析(十二)

1.简介 RK3588 PCIe RC的初始化涉及PCIe设备枚举、中断(INTx、MSI、MSI-X)配置、BAR配置、ATU配置、链路训练等,下面一一介绍。 2.初始化 当RC的模式为RK_PCIE_EP_TYPE时,平台驱动调用rk_add_pcie_port函数初始化RC&#xff0c…

【论文笔记】4D Millimeter-Wave Radar in Autonomous Driving: A Survey

原文链接:https://arxiv.org/abs/2306.04242 I. 引言 传统毫米波雷达(3D毫米波雷达)测量俯仰角的能力有限,数据通常仅包括距离、水平角和多普勒速度信息。此外,3D雷达数据存在噪声且分辨率低(尤其是水平角…

python学习之路 - python的函数

目录 一、python函数1、函数介绍2、函数的定义3、函数的参数4、函数的返回值5、函数说明文档6、函数的嵌套调用7、变量的作用域8、综合案例9、函数与方法的区别 二、python函数进阶1、函数多返回值2、函数多种传参方式a、位置参数b、关键字参数c、缺省参数d、不定长参数 3、匿名…

【2024年华数杯C题老外游中国】(完整题解+代码+完整参考论文)

请问 352 个城市中所有 35200 个景点评分的最高分(Best Score,简称 BS)是多少?全国有多少个景点获评了这个最高评分(BS)?获评了这个最高评分(BS)景点最多的城市有哪些&am…

代码坏味道有24种?我看未必

微信公众号:牛奶 Yoka 的小屋 有任何问题。欢迎来撩~ 最近更新:2024/08/03 [大家好,我是牛奶。] 我在上一篇文章打开IDEA,程序员思考的永远只有两件事!中,通过代码命名、重复代码、合格方法三个章节&#…

请你学习:前端布局3 - 浮动 float

1 标准流(也称为普通流、文档流) 标准流(也称为普通流、文档流)是CSS中元素布局的基础方式,它决定了元素在页面上的默认排列方式。这种布局方式遵循HTML文档的结构,不需要额外的CSS样式来指定元素的位置。…

MongoDB未授权访问漏洞

MongoDB未授权访问漏洞 mongodb数据库是由C编写,主要是为了提供web应可用扩展的一种高性能数据库。开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库。…

MySQL数据库学习笔记

1、数据库的相关概念 数据库是存储数据的仓库,数据是有组织的进行存储 (DataBase)DB. 数据库管理系统:操作和管理数据库的大型软件 DataBase Mangement System(DBMS) SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准。 1、Oracle 2、MySQL 3…

Face2V人脸向量开发包

Face2V SDK适用于需要人脸检测、人脸特征点和特征向量提取的应用,提供Web API和原生API。官方下载地址:Face2V SDK 。 1、目录组织 Face2V SDK开发包的目录组织说明如下: face2v_sdk | - core # 核心代码目录| -…