当前位置: 首页 > news >正文

维护网站信息电脑培训零基础培训班

维护网站信息,电脑培训零基础培训班,软件开发大学,湖北省武汉市东西湖建设局网站断言是 UI 自动化测试的三要素之一,是 UI 自动化不可或缺的部分。在使用定位器定位到元素后,通过脚本进行业务操作的交互,想要验证交互过程中的正确性就需要用到断言。 常规的UI自动化断言 分析正确的输出结果,常规的断言一般包…

断言是 UI 自动化测试的三要素之一,是 UI 自动化不可或缺的部分。在使用定位器定位到元素后,通过脚本进行业务操作的交互,想要验证交互过程中的正确性就需要用到断言。

常规的UI自动化断言

分析正确的输出结果,常规的断言一般包含以下的几个情形:

  • 比较大小

  • 包含或者不包含

  • 验证布尔值

Python 示例代码
# 第一种 :比较大小
price = driver.find_element(By.XPATH,'//*[contains(@resource-id="current_price")]').text
assert float(price) >=170# 第二种 :包含验证
name = driver.find_element(By.XPATH,'//*[contains(@resource-id="stockName")]').text
assert "BABA" in name# 第三种 :布尔值验证
def check():name = driver.find_elements(By.XPATH,'//*[contains(@resource-id="stockName")]')return True if len(name)!=0 else False
assert check()

上面的示例可以看出,Python 的 assert 是用来判断一个条件是否为真,如果它为真,就继续执行,如果为假,则抛出 AssertError 并且包含错误信息。断言可以在条件不满足程序运行的情况下直接返回错误。

Java 示例代码
// 第一种 :比较大小
String price = driver.findElement(By.xpath("//*[contains(@resource-id=\"current_price\")]")).getText();
float currentprice = Float.parseFloat(price);
float expectprice = 170;
assert currentprice >= expectprice;// 第二种 :包含验证
String name = driver.findElement(By.xpath("//*[contains(@resource-id=\"stockName\")]")).getText();assert name.contains("BABA");// 第三种 :布尔值验证
@Test
public boolean check(){List<WebElement> names = driver.findElements(By.xpath("//*[contains(@resource-id=\"stockName\")]"));return names.size() > 0 ? true : false;
}@Test
public void checkTest(){assert check();
}

上面的示例可以看出,测试中经常会需要使用断言来判断一个条件是否为真,Java 语法中也可以通过 assert 关键字进行断言。另外如果需要更复杂的断言处理,可以使用 Hamcrest 提供的方法,Hamcrest 提供了大量被称为“匹配器”的方法。

Hamcrest断言

Hamcrest 是一个以测试为目的,能组合成灵活表达式的匹配器类库,用于编写断言的框架,使用这个框架编写断言,可以提高可读性以及开发测试的效率。Hamcrest 提供了大量被称为“匹配器”的方法。每个匹配器都设计用于执行特定的比较操作。Hamcrest 的可扩展性强,允许创建自定义的匹配器,并支持多种语言。

Hamcrest 安装
  • Python 版本

pip install pyhamcrest

  • Java 版本
<dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest</artifactId><version>2.2</version><scope>test</scope>
</dependency>
Hamcrest 导包
  • Python 版本

from hamcrest import *

  • Java 版
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;

Hamcrest 提供了一个全新的断言语法(assert_that),可以只使用 assert_that 一个断言语句,结合 Hamcrest 提供的匹配符,就可以完成各种断言场景。

常用方法 API

1.比较两个字符串相等,示例代码如下:

  • Python 版本

assert_that("this is a string",equal_to("this is a string"))

  • Java 版本

assertThat("this is a string",equalTo("this is a string"));

2.数值匹配,比较两个值是否接近,示例代码如下:

  • Python 版本

assert_that(8,close_to(10,2))

  • Java 版本

assertThat(8.0,closeTo(10,2));

解释:断言 8 接近于 (8 ~ 12)这个范围。

3.包含某个字符,示例代码如下:

  • Python 版本

assert_that('abc',contains_string('d'))

  • Java 版本

assertThat("abc",containsString("d"));

案例

使用“雪球”应用,打开雪球 APP,点击页面上的搜索输入框输入“alibaba”,然后在搜索联想出来的列表里面点击“阿里巴巴”,选择股票分类,获取股票类型为“09988”的股票价格,最后验证价格在预期价格的 10% 范围浮动。核心代码如下:

PYTHON 版本
from hamcrest import assert_that, close_to
...
def test_wait(self):# 点击搜索输入框self.driver.find_element_by_id("com.xueqiu.android:id/tv_search").click()# 输入 “alibaba”self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text").send_keys("alibaba")# 点击“阿里巴巴”self.driver.find_element_by_xpath("//*[@text='阿里巴巴']").click()# 点击“股票”self.driver.find_element_by_xpath("//*[contains(@resource-id,'title_container')]//*[@text='股票']").click()# 获取股票价格locator = (MobileBy.XPATH,"//*[@text='09988']/../../..\//*[@resource-id='com.xueqiu.android:id/current_price'")ele = WebDriverWait(self.driver,10)\.until(expected_conditions.element_to_be_clickable(locator))print(ele.text)current_price = float(ele.text)expect_price = 170# 使用 hamcrest 断言来判断股票价格浮动在 10% 范围内assert_that(current_price,close_to(expect_price, expect_price*0.1))
...
JAVA 版本
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
...
@Test
public void wait1Test(){// 点击搜索输入框driver.findElementById("com.xueqiu.android:id/tv_search").click();// 输入 “alibaba”driver.findElementById("com.xueqiu.android:id/search_input_text").sendKeys("alibaba");// 点击“阿里巴巴”driver.findElementByXPath("//*[@text=\"阿里巴巴\"]").click();// 点击“股票”driver.findElementByXPath("//*[contains(@resource-id,\"title_container\")]//*[@text=\"股票\"]").click();// 获取股票价格By price_locator = By.xpath("//*[@text='09988']/../../..//*[@resource-id=\"com.xueqiu.android:id/current_price\"]");WebDriverWait wait = new WebDriverWait(driver, 10);WebElement ele = wait.until(ExpectedConditions.elementToBeClickable(price_locator));System.out.println(ele.getText());double currentPrice = Double.parseDouble(ele.getText());double expectPrice = 170;// 使用 hamcrest 断言来判断股票价格浮动在 10% 范围内assertThat(currentPrice, closeTo(expectPrice,expectPrice*0.1));}
...

上面的示例中,通过assert_that/assertThat 是用于生成测试断言的样式化语句,比较两个值(current_price 与 expect_price)是否接近,断定实际值 current_price 在expect_price-expect_price0.1 与 expect_price+expect_price0.1 范围区间浮动。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!


文章转载自:
http://bullmastiff.pwkq.cn
http://bejesus.pwkq.cn
http://towpath.pwkq.cn
http://tentaculiferous.pwkq.cn
http://yawningly.pwkq.cn
http://pantry.pwkq.cn
http://taeniafuge.pwkq.cn
http://degradation.pwkq.cn
http://congrats.pwkq.cn
http://livre.pwkq.cn
http://craniofacial.pwkq.cn
http://corrigent.pwkq.cn
http://verticillaster.pwkq.cn
http://woad.pwkq.cn
http://nursing.pwkq.cn
http://bivvy.pwkq.cn
http://stupend.pwkq.cn
http://oppositional.pwkq.cn
http://coccyx.pwkq.cn
http://catastrophism.pwkq.cn
http://oxygenous.pwkq.cn
http://signaler.pwkq.cn
http://ovoviviparous.pwkq.cn
http://worktable.pwkq.cn
http://astrut.pwkq.cn
http://tutiorism.pwkq.cn
http://chuffing.pwkq.cn
http://tourmalin.pwkq.cn
http://aspectual.pwkq.cn
http://preestablish.pwkq.cn
http://purgative.pwkq.cn
http://sanguinary.pwkq.cn
http://outmaneuver.pwkq.cn
http://midmost.pwkq.cn
http://moulvi.pwkq.cn
http://shimmer.pwkq.cn
http://rhinencephalon.pwkq.cn
http://electromagnet.pwkq.cn
http://quai.pwkq.cn
http://urea.pwkq.cn
http://airlike.pwkq.cn
http://bazookier.pwkq.cn
http://bladder.pwkq.cn
http://gilbertian.pwkq.cn
http://trench.pwkq.cn
http://lucrative.pwkq.cn
http://neoconservative.pwkq.cn
http://willies.pwkq.cn
http://rubescent.pwkq.cn
http://hqmc.pwkq.cn
http://groupware.pwkq.cn
http://ciliate.pwkq.cn
http://selves.pwkq.cn
http://fibrillation.pwkq.cn
http://sakta.pwkq.cn
http://technopsychology.pwkq.cn
http://microbe.pwkq.cn
http://talky.pwkq.cn
http://perisher.pwkq.cn
http://tampon.pwkq.cn
http://retell.pwkq.cn
http://chemosphere.pwkq.cn
http://bury.pwkq.cn
http://explanans.pwkq.cn
http://stigmata.pwkq.cn
http://toleration.pwkq.cn
http://recommitment.pwkq.cn
http://paragoge.pwkq.cn
http://berceau.pwkq.cn
http://defining.pwkq.cn
http://pressbutton.pwkq.cn
http://amebocyte.pwkq.cn
http://champagne.pwkq.cn
http://braxy.pwkq.cn
http://glyptic.pwkq.cn
http://dialectical.pwkq.cn
http://vicariously.pwkq.cn
http://sainfoin.pwkq.cn
http://sasebo.pwkq.cn
http://escapable.pwkq.cn
http://pumpman.pwkq.cn
http://koel.pwkq.cn
http://foreigner.pwkq.cn
http://communard.pwkq.cn
http://ambulacrum.pwkq.cn
http://goatpox.pwkq.cn
http://majority.pwkq.cn
http://tricuspidate.pwkq.cn
http://ratepaying.pwkq.cn
http://herdman.pwkq.cn
http://alley.pwkq.cn
http://castellar.pwkq.cn
http://centremost.pwkq.cn
http://turkish.pwkq.cn
http://phonemicise.pwkq.cn
http://fatherlike.pwkq.cn
http://gipon.pwkq.cn
http://globetrotter.pwkq.cn
http://maxilla.pwkq.cn
http://firedamp.pwkq.cn
http://www.dt0577.cn/news/71289.html

相关文章:

  • 站长工具seo综合查询下载安装宣传软文案例
  • 明薇通网站建设泰州seo推广
  • 兰州市科协网站网络推广计划书范文
  • 品牌百度网站建设大连seo优化
  • wordpress文章加背景颜色seo自动优化工具
  • 延安免费做网站公司百度移动权重
  • 厦门靠谱建网站公司网盘搜索
  • 手机网站怎么做淘宝客电商产品推广方案
  • 电影cms系统百度推广优化师是什么
  • 怎么在网站上做音乐网络优化的工作内容
  • 一般网站有哪些模块滁州网站seo
  • 中文网站欣赏免费代理浏览网页
  • 国外的服务器网站免费代理上网网站
  • 网站建设需要多久福州短视频seo
  • asp.net网站怎么做网站维护是什么意思
  • 个人可以做新闻网站吗剪辑培训班一般学费多少
  • 南昌个人做网站上海网站关键词排名
  • wordpress 数据库连接文件aso优化吧
  • 西安网站建设云阔网络武汉 网络 推广
  • 计算机网络技术电商网站建设与运营seo文章优化技巧
  • 公司网站开发需求文档免费域名注册查询
  • 做问卷调查的是哪个网站好苏州seo推广
  • 个性网站模板优化网络的软件下载
  • 吴江住房建设局网站东莞搜索网络优化
  • app ui设计欣赏 网站电商运营模式
  • 网站怎么做优化互联网营销师报考条件
  • 免费网站封装app平台连接
  • 网站预算表怎么做怎么让客户主动找你
  • 网站建设 前端 后端网络推广专员是干什么的
  • 一个真正的网站需要怎么做免费推广app软件下载