发动态

没有新消息

更多内容

霍格沃兹测试开发 北京/河北科技大学
Selenium Grid作用是什么?Selenium Grid的使用过程? 问题 Selenium Grid作用是什么? Selenium Grid 的使用过程? 考察点 面试官想了解: Selenium Grid是否使用过 Selenium Grid对应组件流转 技术点 涉及的技术点: Selenium Grid 回答 SeleniumGrid 作用 Selenium Grid 是 Selenium 的三大组件之一,它可以在多台机器上并行运行测试,集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它提供一种在多台计算机上并行运行测试的简便方法。 使用场景 场景一: 实现分布式执行测试,提高执行效率 比如:我们有 1000 条用例执行,如果在本机执行,一条用例耗时 100 秒,执行完成则需要大约 27 小时 1000*100/60/60=27个小时。如果让这些用例并发执行,比如分配 6 台计算机,每个计算机执行 1000/6 大约 166 条用例,那时间大约节省了 6 倍,原来需要大约 27 个小时,现在可能只需要 4.5 个小时左右就基本完成了, 分布式并发执行可以让我们用例的执行总时长指数级的缩小,从而效率得到很大的提升。 场景二: 解决浏览器兼容性问题 比如还是 1000 条用例,需要分别在 Chrome、Firefox、Edge、Safari 这些浏览器上都执行一遍,保证每个浏览器上都能正常执行,测试浏览器的兼容性。这时也可以使用 Selenium Grid,通过 Selenium Grid 将这些请求分发到不同的系统、不同浏览器中执行。这些浏览器可以分别布署在不同的计算机中比如可以布署在 Linux 、Windows、Mac 上都可以,作为它的 Node 结点,从而解决兼容性测试的问题 执行过程 1886×1218 99.5 KB Client是本地IDEA要执行的测试用例。 1.Client的测试用例通过HTTP协议发送请求给路由Router。 Router是 Selenium Grid 内的一个处理器/组件,也是Selenium Grid的入口。 2.Router接受请求并立即进行分发。 创建一个新的Session会话同时分配对应的Node节点机器。 Router作用:把请求从路由Router发送到Node的机器节点。 3.路由Router进行请求分发。 新请求 接收是一个新请求时,路由Router此时不知往哪个Node节点上发送该请求。 3.1.1 新请求时,路由Router将请求发送给分发器Distributor。 分发器 Distributor 读取Client脚本的DesiredCapability属性,从中获取用例的 操作系统Platform 及 浏览器browserName 属性。 3.1.2 Distributor根据属性值把请求发送给符合的 Node节点 ,同时 创建session会话对象 Session Map。 Session会话创建时会产生一个Session ID,分发器 Distributor会把Session ID与对应的Node节点的URI地址一一对应存储在 Session Map 中。 3.1.3 Session Map会把Session ID与对应的Node发送给Router路由,Router路由再发送给客户端Client。 会话的职责就是创建一个简单的映射,其中包含正在执行的测试用例的Session会话ID及其执行的物理机器Node的地址。 已存在的请求 接收是一个已存在的请求时,路由Router直接从Session Map中根据对应的Session ID查找到Node节点的URI地址,把用例请求发送到对应节点上直接运行即可。 3.2.1 已存在的请求时,路由Router将请求根据Session Map中对应关系直接把请求发送给Node节点。 以上是SeleniumGrid的各个组件之间的执行过程。

184阅读

6赞

评论

0 条评论

暂无评论,快来写下您的评论

推荐阅读

软件测试 | Selenium Grid 作用是什么?Selenium Grid的使用过程? 问题 Selenium Grid作用是什么? Selenium Grid 的使用过程? 考察点 面试官想了解: Selenium Grid是否使用过 Selenium Grid对应组件流转 技术点 涉及的技术点: Selenium Grid 回答 SeleniumGrid 作用 Selenium Grid 是 Selenium 的三大组件之一,它可以在多台机器上并行运行测试,集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它提供一种在多台计算机上并行运行测试的简便方法。 使用场景 场景一: 实现分布式执行测试,提高执行效率 比如:我们有 1000 条用例执行,如果在本机执行,一条用例耗时 100 秒,执行完成则需要大约 27 小时 1000*100/60/60=27个小时。如果让这些用例并发执行,比如分配 6 台计算机,每个计算机执行 1000/6 大约 166 条用例,那时间大约节省了 6 倍,原来需要大约 27 个小时,现在可能只需要 4.5 个小时左右就基本完成了, 分布式并发执行可以让我们用例的执行总时长指数级的缩小,从而效率得到很大的提升。 场景二: 解决浏览器兼容性问题 比如还是 1000 条用例,需要分别在 Chrome、Firefox、Edge、Safari 这些浏览器上都执行一遍,保证每个浏览器上都能正常执行,测试浏览器的兼容性。这时也可以使用 Selenium Grid,通过 Selenium Grid 将这些请求分发到不同的系统、不同浏览器中执行。这些浏览器可以分别布署在不同的计算机中比如可以布署在 Linux 、Windows、Mac 上都可以,作为它的 Node 结点,从而解决兼容性测试的问题 执行过程 1886×1218 99.5 KB Client是本地IDEA要执行的测试用例。 1.Client的测试用例通过HTTP协议发送请求给路由Router。 Router是 Selenium Grid 内的一个处理器/组件,也是Selenium Grid的入口。 2.Router接受请求并立即进行分发。 创建一个新的Session会话同时分配对应的Node节点机器。 Router作用:把请求从路由Router发送到Node的机器节点。 3.路由Router进行请求分发。 新请求 接收是一个新请求时,路由Router此时不知往哪个Node节点上发送该请求。 3.1.1 新请求时,路由Router将请求发送给分发器Distributor。 分发器 Distributor 读取Client脚本的DesiredCapability属性,从中获取用例的 操作系统Platform 及 浏览器browserName 属性。 3.1.2 Distributor根据属性值把请求发送给符合的 Node节点 ,同时 创建session会话对象 Session Map。 Session会话创建时会产生一个Session ID,分发器 Distributor会把Session ID与对应的Node节点的URI地址一一对应存储在 Session Map 中。 3.1.3 Session Map会把Session ID与对应的Node发送给Router路由,Router路由再发送给客户端Client。 会话的职责就是创建一个简单的映射,其中包含正在执行的测试用例的Session会话ID及其执行的物理机器Node的地址。 已存在的请求 接收是一个已存在的请求时,路由Router直接从Session Map中根据对应的Session ID查找到Node节点的URI地址,把用例请求发送到对应节点上直接运行即可。 3.2.1 已存在的请求时,路由Router将请求根据Session Map中对应关系直接把请求发送给Node节点。 以上是SeleniumGrid的各个组件之间的执行过程。

356阅读
4赞
0评论

selenium Grid作用是什么?Selenium Grid的使用过程? 考察点 面试官想了解: Selenium Grid是否使用过 Selenium Grid对应组件流转 技术点 涉及的技术点: Selenium Grid 回答 SeleniumGrid 作用 Selenium Grid 是 Selenium 的三大组件之一,它可以在多台机器上并行运行测试,集中管理不同的浏览器版本和浏览器配置。通过将客户端命令发送到远程浏览器的实例, Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行 WebDriver 脚本. 它提供一种在多台计算机上并行运行测试的简便方法。 使用场景 场景一: 实现分布式执行测试,提高执行效率 比如:我们有 1000 条用例执行,如果在本机执行,一条用例耗时 100 秒,执行完成则需要大约 27 小时 1000*100/60/60=27个小时。如果让这些用例并发执行,比如分配 6 台计算机,每个计算机执行 1000/6 大约 166 条用例,那时间大约节省了 6 倍,原来需要大约 27 个小时,现在可能只需要 4.5 个小时左右就基本完成了, 分布式并发执行可以让我们用例的执行总时长指数级的缩小,从而效率得到很大的提升。 场景二: 解决浏览器兼容性问题 比如还是 1000 条用例,需要分别在 Chrome、Firefox、Edge、Safari 这些浏览器上都执行一遍,保证每个浏览器上都能正常执行,测试浏览器的兼容性。这时也可以使用 Selenium Grid,通过 Selenium Grid 将这些请求分发到不同的系统、不同浏览器中执行。这些浏览器可以分别布署在不同的计算机中比如可以布署在 Linux 、Windows、Mac 上都可以,作为它的 Node 结点,从而解决兼容性测试的问题 Client是本地IDEA要执行的测试用例。 1.Client的测试用例通过HTTP协议发送请求给路由Router。 Router是 Selenium Grid 内的一个处理器/组件,也是Selenium Grid的入口。 2.Router接受请求并立即进行分发。 创建一个新的Session会话同时分配对应的Node节点机器。 Router作用:把请求从路由Router发送到Node的机器节点。 3.路由Router进行请求分发。 新请求 接收是一个新请求时,路由Router此时不知往哪个Node节点上发送该请求。 3.1.1 新请求时,路由Router将请求发送给分发器Distributor。 分发器 Distributor 读取Client脚本的DesiredCapability属性,从中获取用例的 操作系统Platform 及 浏览器browserName 属性。 3.1.2 Distributor根据属性值把请求发送给符合的 Node节点 ,同时 创建session会话对象 Session Map。 Session会话创建时会产生一个Session ID,分发器 Distributor会把Session ID与对应的Node节点的URI地址一一对应存储在 Session Map 中。 3.1.3 Session Map会把Session ID与对应的Node发送给Router路由,Router路由再发送给客户端Client。 会话的职责就是创建一个简单的映射,其中包含正在执行的测试用例的Session会话ID及其执行的物理机器Node的地址。 已存在的请求 接收是一个已存在的请求时,路由Router直接从Session Map中根据对应的Session ID查找到Node节点的URI地址,把用例请求发送到对应节点上直接运行即可。 3.2.1 已存在的请求时,路由Router将请求根据Session Map中对应关系直接把请求发送给Node节点。 以上是SeleniumGrid的各个组件之间的执行过程。

376阅读
2赞
0评论

Cookie的作用是什么?和Session有什么区别? Cookie和Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。 Cookie一般通过客户端用来保存用户信息 Session的主要作用就是通过服务端记录用户的状态

547阅读
19赞
1评论

本文转自测试人社区霍格沃兹测试开发学社学员笔记 Flask 请求与响应-接口路由请求方法(methods=[“”]) Flask 支持的请求方法通过在路由定义时使用 methods 参数进行指定。可以指定多个请求方法,以列表的形式传递给 methods 参数。 @app.route('/',methods=['GET','POST','PUT','DELETE']) GET:一般是从 URI 中从 服务器中获取资源(比如获取用例列表,比如,获取用户信息等等),但一般 GET 是存在不安全性的,如果有敏感信息,会使用 POST。 POST: 主要用于将【数据发送到服务器】创建或更新资源。注意,POST 对数据长度是没有限制的,GET 会有限制,这是因为某些浏览器对请求的 URL 长度有限制。 PUT:也是用于将 【数据发送到服务器】创建或更新资源。 DELETE:用来删除指定的资源。 #定义接口路由GET请求方法 @app.route('/',methods=['GET']) def get():     return f"Method is GET." @app.route('/get') def get():    return f"Method is GET." if __name__ == '__main__':    app.run() @app.route('/post',methods=['POST']) def POST():    return f"Method is POST." if __name__ == '__main__':    app.run() @app.route('/put',methods=['PUT']) def PUT():    return f"Method is PUT." if __name__ == '__main__':    app.run() @app.route('/delete',methods=['DELETE']) def delete():    return f"Method is DELETE." if __name__ == '__main__':        app.run() 霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。

39阅读
1赞
0评论

软件测试 | 接口自动化认证体系 在使用HTTP网络协议时,网络的基本认证方式是:使用HTTP的用户发起请求,用户提供用户名和密码进行认证。在进行这种基本认证的过程中,用户发起请求的HTTP头字段会包含Authorization字段(Authorization: Basic<凭证>),该凭证是用户名和密码组合的base64编码。对于这种类型的接口进行测试,我们可以使用Python的requests或Java的RestAssured进行接口测试。 实战演示 实战演示代码如下(Python版和Java版)。 (1)Python演示代码 1)使用Python中的HTTPBasicAuth类将HTTP基本身份验证附加到requests对象中。 2)通过auth参数传递数据信息。 import requests from requests.auth import HTTPBasicAuth ​ def test_auth():     url = ""     r = requests.get(url = url,     auth = HTTPBasicAuth("ad","123"))     assert r.json() ["user"] == 'ad' (2)Java演示代码 通过Java中的given() 方法提供的 auth().basic()方法对用户名和密码进行验证,auth().basic()方法中的第一个参数为用户名,第二个参数为密码。 import static io.restassured.RestAssured.*; ​ public class Requests{     public static void main(String[] args) {       given().               auth().basic("ad","123").               when().                     get("").               then().statusCode(200).log().all();     } }

270阅读
4赞
0评论

软件测试 | 性能测试关注哪些指标? 问题 在工作中,使用JMeter做压力测试时,需要关注其中的哪些指标? 性能测试关注哪些指标? 考察点 面试官想了解: 是否用过 JMeter 指标进行分析 技术点 涉及的技术点: JMeter 结果分析 回答 性能指标由 压测结果指标 和 服务器指标 两部分说明。 压测结果指标 主要是根据JMeter生成的压测报告而言,则需要关注:吞吐量、请求的响应时间以及请求的错误率。 吞吐量 每秒钟系统能够处理的请求数。 在系统压测过程中,会达到系统的一个最高值,此时如果继续加压,对应系统的吞吐量不会增高反而会下降。因为,虽然并发数在增加,但是系统已经超负荷工作,无法满足新的并发需求。 请求的响应时间 服务处理一个请求并获取它响应的时间。 获取请求的响应时间,应从请求的平均值、90%请求、99%请求等多个角度统计,而不仅仅是根据平均值来进行判断。 请求的错误率 压测并发脚本中出错的请求所占比例。 请求对错误率需要看具体是外部原因还是服务本身原因导致。外部原因比如网络超时等;服务本身由于逻辑或多线程处理问题导致。 服务器指标 服务器指标主要指的是服务器相关指标,比如:CPU、内存、网络、服务器负载 等等。 在进行性能测试时,不能只关注一方面的指标,需要压测结果指标 和 服务器指标两方面结合来判断出系统的问题所在,给出最终压测结果报告。

752阅读
4赞
0评论