selenium2.0 原理 html
当使用 Selenium2.0 启动浏览器 Web Browser 时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 做为 Selenium 的 Remote Server,并将其与浏览器绑定。绑定完成后,Remote Server 就开始监听 Client 端的操做请求。 执行测试时,测试用例会做为 Client 端,将须要执行的页面操做请求以 Http Request 的方式发送给 Remote Server。该 HTTP Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述须要浏览器执行的具体操做。 Remote Server 接收到请求后,会对请求进行解析,并将解析结果发给 WebDriver,由 WebDriver 实际执行浏览器的操做。 WebDriver 能够看作是直接操做浏览器的原生组件(Native Component),因此搭建测试环境时,一般都须要先下载浏览器对应的 WebDriver。前端
Appium原理:java
本质上,Appium Server 是一个 Node.js 应用,接受来自 Appium Client 的请求,解析后经过 WebDriver 协议和设备端上的代理打交道。Appium Client 其实就是测试代码,使用对应语言的 Client 将基于 JSON Wire 协议的操做指令发给 Appium Server。python
iOS:Appium Server 会把操做请求发送给 WebDriverAgent(简称 WDA),而后 WDA 再基于 XCUITest 完成 iOS 模拟器或者真机上的自动化操做;ios
Android:Appium Server 会把操做请求发送给 appium-UIautomator2-server,而后 appium-UIautomator2-server 再基于 UIAutomator V2 完成 Android 模拟器或者真机上的自动化操做。git
总结:Appium 属于 C/S 架构,Appium Client 经过多语言支持的第三方库向 Appium Server 发起请求,基于 Node.js 的 Appium Server 会接受 Appium Client 发来的请求,接着和 iOS 或者 Android 平台上的代理工具打交道,代理工具在运行过程当中不断接收请求,并根据 WebDriver 协议解析出要执行的操做,最后调用 iOS 或者 Android 平台上的原生测试框架完成测试。 github
性能测试须要关注的是算法设计、架构设计、性能最佳实践、数据库相关、软件性能的可测试性这五大方面。web
性能测试须要关注的具体内容:算法
性能测试的能力spring
并发用户数:业务上认为是最大最大在线人数,但对于服务的性能来说,是在线的人想发起请求数,同时要注意用户发起的哪类请求较多
响应时间标准定义:应用系统从请求发出开始,到客户端接收到最后一个字节数据所消耗的时间
系统吞吐量:单位时间内的请求数量,请求的字节大小,页面多少
性能测试方法分类:
性能测试领域:能力验证、能力规划、性能调优、缺陷发现
性能测试步骤
性能工具组成:虚拟用户脚本生成器、压力控制器、压力产生器、系统监控器、测试结果分析器
负载策略
全链路疑难点解决
Selenium Hub 用来管理各个 Selenium Node 的注册信息和状态信息,而且接收远程客户端代码的测试调用请求,并把请求命令转发给符合要求的 Selenium Node 执行。
搭建通常的selenium grid
在Docker上搭建 selenium grid
在云端搭建selenium grid
注意如下流程,这样能够实现大型系统的统一控制,若是是小型系统能够不使用统一测试平台,和jenkins集群,甚至不须要把selenium grid部署在docker上,服务器自动扩容等
注意实现selenium grid的远程控制并发,持续集成,使用人员
测试服务化: