IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 常见测试工具总结:LR、Selenium -> 正文阅读

[开发测试]常见测试工具总结:LR、Selenium


前言

`测试分门别类,本文列举了常见的自动化测试工具Selenium、性能测试工具LoadRunner和测试管理工具禅道的一些使用要点。


一、Selenium

1、Selenium是什么

Selenium的特点
(Selenium是一个web的自动化测试工具)轻量级:对于不同的语言只是一个包而已;支持多语言;支持多平台;支持多浏览器;可以通过selenium grid进行分布式测试
描述自动化化测试金字塔
ui层用例维护量比较大,适合界面稳定的时候做自动化测试;接口层用户维护量适中,适合接口稳定的项目,效率比较高;单元测试是针对代码级别进行测试
Selenium的发展
Selenium2.0集成了WebDriver,将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至浏览器本身,解决了环境沙箱的问题;Selenium3.0增加了一些新特性,增加了edge Safari的原生内核。
Webdriver的原理
启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的
remote server。
客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议:The WebDriver Wire
Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我
们希望浏览器接下来做什么事情)。
Sever端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器native的调用来完成操作。
在这里插入图片描述

2.常见的API

如何对一个百度的输入框定位

<input id=“kw” class=“s_ipt” type=“text” maxlength="100"name=“wd” autocomplete=“off”>

通过id name tag_name class_name css_selector xpath定位

#coding=utf-8
from selenium import webdriver
import time
browser = webdriver.Chrome();
browser.get("http://www.baidu.com")
#通过id和name定位非常常见,因为大多数控件都有这两个属性
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_name()
#通过标签名字和class name 定位
browser.find_element_by_tag_name()
browser.find_element_by_class_name()
#通过css定位:可以用chrome的F12开发者模式中Element-右键-copy-copy selector来获取
browser.find_element_by_css_selector()
#XPATH的获取可以用chrome的F12开发者模式中Element-右键-copy-copy xpath来获取
browser.find_element_by_xpath()

如果不是一个输入框而是链接,对其定位

#对链接进行定位可以用link text和partial link text定位
browser.find_element_by_link_text("hao123").click();
browser.find_element_by_partial_link_text("hao").click();

操作测试对象
send_keys(“xx”) 用于在一个输入框里输入xx 内容
click() 用于点击一个按钮
submit用于提交表单
clear() 用于清除输入框的内容
text用于获取元素的文本信息
浏览器的操作
browser.maximize_window() #将浏览器最大化显示
browser.set_window_size(480, 800) “设置浏览器宽480、高800显示”
browser.back()浏览器的后退操作 browser.forward()浏览器的前进操作
execute_script(script, *args),在当前窗口/框架同步执行javaScript,控制浏览器的滚动条
键盘事件
要想调用键盘按键操作需要引入keys 包:
from selenium.webdriver.common.keys import Keys
通过send_keys()调用按键:
send_keys(Keys.TAB) # TAB
send_keys(Keys.ENTER) # 回车
组合键
#ctrl+a 全选输入框内容
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,‘a’)
time.sleep(3)
#ctrl+x 剪切输入框内容
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,‘x’)
其余的还有如鼠标事件、定位一组元素、多层窗口定位、下拉框处理、上传文件等操作

3.unittest框架

在这里插入图片描述
test fixture:初始化和清理测试环境,比如创建临时的数据库,文件和目录等,其中 setUp() 和 setDown()
是最常用的方法
test case:单元测试用例,TestCase 是编写单元测试用例最常用的类
test suite:单元测试用例的集合,TestSuite 是最常用的类
test runner:执行单元测试
test report:生成测试报告
批量执行脚本
(1) 当有多个或者几百测试用例的时候, 这样就需要一个测试容器( 测试套件) ,把测试用例放在该容器中进行执行,unittest 模块中提供了TestSuite 类来生成测试套件,使用该类的构造函数可以生成一个测试套件的实例,该类提供了addTest来把每个测试用例加入到测试套件中。
(2)在unittest 框架中提供了makeSuite() 的方法,makeSuite可以实现把测试用例类内所有的测试case组成的测试套件TestSuite ,unittest 调用makeSuite的时候,只需要把测试类名称传入即可。
TestLoader 用于创建类和模块的测试套件,一般的情况下,使TestLoader().loadTestsFromTestCase(TestClass)
来加载测试类。

suite = unittest.TestSuite()
#将测试用例加入到测试容器(套件)中
suite.addTest(unittest.makeSuite(testbaidu1.Baidu1))
suite.addTest(unittest.makeSuite(testbaidu2.Baidu2))
return suite
'''
suite1 = unittest.TestLoader().loadTestsFromTestCase(testbaidu1.Baidu1)
suite2 = unittest.TestLoader().loadTestsFromTestCase(testbaidu2.Baidu2)
suite = unittest.TestSuite([suite1, suite2])
return suite

(3)discover 是通过递归的方式到其子目录中从指定的目录开始, 找到所有测试模块并返回一个包含它们对象的
TestSuite ,然后进行加载与模式匹配唯一的测试文件,discover 参数分别为discover(dir,pattern,top_level_dir=None)

unittest 框架默认加载测试用例的顺序是根据ASCII 码的顺序,数字与字母的顺序为: 09,AZ,a~z 。
unittest断言:如assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则fail。也可以通过IDE添加
脚本执行完毕后,可以看到HTML报告。用例不可能每一次运行都成功,肯定运行时候有不成功的时候。如果可以捕捉到错误,并且把错误截图保存,这将
是一个非常棒的功能,也会给我们错误定位带来方便。

二、LoadRunner

1.LoadRunner的使用

LoadRunner是一种适用于许多软件体系架构的自动负载测试工具,从用户关注的响应时间,吞吐量,并发用户和性能计数器等方面衡量系统的性能表现,辅助用户进行系统性能的优化。
LoadRunner包括包括三个前台功能组件,VuGen虚拟用户脚本生成器、Controller(测试控制器)和结果分析器Analysis
在这里插入图片描述
在录制脚本插入了事务
在这里插入图片描述
之后再Analysis中查看自动生成的报告,根据显示出来的图表可以对项目进行改进。
结论:50人并发访问,响应时间为5s左右,有待优化。

三、禅道

禅道的使用

禅道是基于敏捷开发的,禅道的启动是在根目录下直接点击启动

总结

`Selenium常常用于Web自动化测试,而LR用于性能测试……

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:52:05  更:2022-03-16 22:52:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:37:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码