2020310

news/2024/12/2 9:52:13/

Selenium: 基于WebDriver协议的 Web应用程序测试的工具

在这里插入图片描述

精简版:
selenium脚本通过http请求发送命令和参数给httpserver
httpserver通过json wire protocol格式转发命令和参数给webdriver
webdriver通过原生API或者JavaScript代码执行操作给浏览器
浏览器通过json wire protocol格式返回结果或者错误信息给webdriver
webdriver通过HTTP格式返回结果或者错误信息给httpserver
httpserver返回结果或者错误信息给selenium脚本

Appium工作原理 - 简书 (jianshu.com)
Appium: 基于WebDriver协议的移动端自动化测试框架
Appium的工作原理就是通过模拟用户的操作来测试移动应用程序的各种功能
Appium的工作原理如下: 1. Appium启动一个HTTP服务器,监听客户端的请求。 2. 客户端通过HTTP请求向Appium发送命令,例如启动应用程序、点击按钮、输入文本等。 3. Appium将命令转换为相应的移动设备操作,例如通过ADB命令启动应用程序、通过UIAutomator2库模拟用户操作等。 4. 移动设备执行相应的操作,并将结果返回给Appium。 5. Appium将结果转换为JSON格式,并通过HTTP响应返回给客户端。

Rational Functional Tester:面向对象的自动化功能测试工具
Rational Functional Tester实现自动化管理步骤的全面总结:
配置RFT和适配器:确定应用程序环境、选择适配器,并进行必要的配置。
创建自动化测试脚本:使用录制器或手动创建脚本,捕获应用程序操作序列和输入输出数据。
设计自动化测试用例:根据需求文档、设计文档编写自动化测试用例。
关联脚本和用例:将自动化测试脚本与相关的测试用例关联起来,以便在执行测试时跟踪测试执行情况和结果。
创建自动化测试套件:根据测试环境的要求,配置测试设备、测试数据等参数,并编排测试用例的执行顺序。
执行测试:运行自动化测试脚本和测试套件,收集测试数据和结果,并记录任何错误或异常情况。
分析和报告测试结果:根据测试结果生成测试报告,汇总测试执行情况、缺陷和建议。
在这里插入图片描述

Jmeter: 压力测试工具,用于对软件做压力测试。能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试.
工作原理: 基于各种协议,通过多线程的方式来模拟并发用户,设计各种场景来模拟真实的用户负载

在这里插入图片描述

分布式测试是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试。在工作中使用JMeter做大并发压力测试的场景下,需要模拟成百上千的用户并发,这样使用单台机器模拟所有的并发用户就有些力不从心。

(3)JMeter分布式测试原理
一台电脑作为控制机(Controller、master),其它电脑做为执行机(Agent、slave)。
JMeter脚本执行时,控制机会把脚本发送到每台执行机上,执行机拿到脚本后就开始执行。
在执行机中执行脚本时,不需要启动JMeter工具界面,可以理解它是通过命令行模式执行的。
执行完成后,执行机会把结果回传给控制机,控制机会收集所有执行机的信息并汇总。
在这里插入图片描述

JMeter是一款基于Java的开源性能测试工具,它可以模拟多种协议和应用场景,如HTTP、FTP、JDBC、SOAP、REST等。JMeter的工作原理可以简单概括为以下几个步骤:

  1. 创建测试计划:用户需要在JMeter中创建一个测试计划,该计划包含了测试的目标、测试场景、测试数据等信息。

  2. 添加线程组:在测试计划中添加线程组,线程组是一组并发用户的集合,每个线程代表一个用户,可以设置线程数、循环次数、延迟时间等参数。

  3. 添加Sampler:Sampler是JMeter中的采样器,用于模拟用户的请求,如HTTP请求、FTP请求、JDBC请求等。

  4. 添加断言:断言用于验证响应结果是否符合预期,如响应时间、响应内容、响应状态码等。

  5. 添加监听器:监听器用于收集测试结果,如响应时间、吞吐量、错误率等。

  6. 运行测试:在JMeter中启动测试,JMeter会模拟多个并发用户发送请求,收集响应结果,并将结果输出到监听器中。

  7. 分析测试结果:通过监听器中的结果数据,可以对测试结果进行分析和优化。

总的来说,JMeter的工作原理就是通过模拟多个并发用户发送请求,收集响应结果,并对测试结果进行分析和优化。

相关代码:selenium测试
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

创建Chrome浏览器实例

driver = webdriver.Chrome()

打开网页

driver.get(“https://example.com”)

等待按钮加载完成

button = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, “button-id”))
)

点击按钮

button.click()

关闭浏览器

driver.quit()


```python appium测试计算器
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
import time# 设置 Appium 服务器地址和被测试应用的包名和启动 Activity
desired_caps = {'platformName': 'Android','deviceName': 'Android Emulator','appPackage': 'com.android.calculator2','appActivity': 'com.android.calculator2.Calculator'
}# 连接 Appium 服务器
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)# 等待应用启动
time.sleep(5)# 定位数字 1 按钮并点击
driver.find_element_by_id('com.android.calculator2:id/digit_1').click()# 定位加号按钮并点击
driver.find_element_by_id('com.android.calculator2:id/op_add').click()# 定位数字 2 按钮并点击
driver.find_element_by_id('com.android.calculator2:id/digit_2').click()# 定位等号按钮并点击
driver.find_element_by_id('com.android.calculator2:id/eq').click()# 获取计算结果
result = driver.find_element_by_id('com.android.calculator2:id/result').text# 断言计算结果是否正确
assert result == '3'# 关闭应用
driver.quit()

http://www.ppmy.cn/news/341911.html

相关文章

赋能矿山 | KaiwuDB 智慧矿山解决方案

行业背景 随着勘探和矿产开发技术的提高以及能源需求量的大幅增加,矿山开发速度持续加快。随之而来的诸多弊端,如矿山资源综合利用率低、管理方式粗放、安全和环境污染等问题日益突出,使得矿业智能化建设迫在眉睫。 近年来,政府…

技嘉主板命名规则是什么

往往我们都被主板上面的那一长串的英文名字搞的云里来雾里去,明明看参数差不多啊。怎么字母不一样了!其实技嘉的名字个人感觉还是比较明了的至少数字不多…… 技嘉主板编号以“GA-”开头,其后紧跟数字和英文字母,用来区分具体主板…

windows自带黑体_win10黑体,windows10里的黑体

鼠标右键,打开桌面属性—外观—高级,在项目里选择你要改的zhidao地方,比如图标,你就选图标,然后在字体上选择你要的字体,大小随你定,但是有时字体过大或过小回,会让字体有锯齿&#…

macOS 10.12/10.13 字体美化(华文黑体删除)

本文参考了孫志貴的一篇博文 链接:http://www.jianshu.com/p/fa5515f09299 问题描述 1.很多第三方应用打开时会提示下载“华文黑体”,然而在 macOS10.13 中却总是下载失败; 2.macOS 中有很多字体在一些地方的显示效果会透露着一股农业重金…

技嘉显卡 RGBFusion 不能调光解决方法

技嘉 RGBFusion 不能调光解决方法 技嘉 RGBFusion 不能调光解决方法故障问题解决方法 技嘉 RGBFusion 不能调光解决方法 故障问题 最近调试显卡灯光,突然发现RGBFusion出错,显示如下: 解决方法 1.前往官网下载固件 如我是垃圾卡RTX3060T…

ubuntu下安装雅黑和华文黑体

1、使用sudo fontconfig-voodoo -f -s zh_CN命令建立连接后&#xff0c;来调整Firefox和一些系统中文字体过度柔化&#xff0c;在修改language-selector.conf文件。 2、sudo gedit /etc/fonts/language-selector.conf 3、找到&#xff1a; <family>Bitstream Vera Ser…

苹果公布Apple Vision Pro头显的六种交互手势

苹果 Vision Pro 头显的交互&#xff0c;并不依赖物理控制器&#xff0c;而是通过追踪眼球和手势来交互虚拟物体。苹果设计师在近日的开发者会议中&#xff0c;概述了 Vision Pro 头显可以使用的交互手势。 Tap&#xff1a; 同时点击拇指和食指会向头戴显示设备发出信号&…

Springcloud之Feign、Hystrix、Ribbon如何设置超时时间

一&#xff0c;概述 我们在微服务调用服务的时候&#xff0c;会使用hystrix、feign和ribbon&#xff0c;比如有一个实例发生了故障而该情况还没有被服务治理机制及时的发现和摘除&#xff0c;这时候客户端访问该节点的时候自然会失败。 所以&#xff0c;为了构建更为健壮的应…