得知互动

标题: 说一说:干货 | APP自动化Android之属性获取与断言 [打印本页]

作者: xinshangren    时间: 2022-6-20 08:37
标题: 说一说:干货 | APP自动化Android之属性获取与断言
  原标题:干货 | APP自动化Android之属性获取与断言app自动化https://www.aznfz.com/冰狐智能辅助一站式app自动化解决方案,支持SaaS和微服务,不需编程通过搭积木和参数配置即可快速实现各种app自动化操作,比如:自动运营店铺,自动签到,自动薅羊毛,自动回复,自动化测试,抓取app数据,微信营销,网络推广,抢红包等功能!

登录/注册后可看大图
  本文节选自霍格沃兹测试学院内部教材   断言是 UI 自动化测试的三要素之一,是 UI 自动化不可或缺的部分。我们使用定位器定位到元素后,通过脚本进行业务操作的交互,想要验证交互过程中的正确性就需要用到断言。   常规的UI自动化断言   分析正确的输出结果,常规的断言一般包含以下的几个情形:   比较大小   包含或者不包含   验证布尔值   示例代码:   #比较大小   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")]')   if len(name)!=0:   return True   else:   return False   assert check()   上面的示例可以看出,Python 的 assert 是用来判断一个条件是否为真,如果它为真,就继续执行,如果为假,则抛出 AssertError 并且包含错误信息。断言可以在条件不满足程序运行的情况下直接返回错误。   Hamcrest断言   Hamcrest 是一个以测试为目的,能组合成灵活表达式的匹配器类库,用于编写断言的框架,使用这个框架编写断言,可以提高可读性以及开发测试的效率。Hamcrest 提供了大量被称为“匹配器”的方法。每个匹配器都设计用于执行特定的比较操作。Hamcrest 的可扩展性强,允许你创建自定义的匹配器,并支持多种语言。   Hamcrest使用方法   安装   pip install pyhamcrest   导入   from hamcrest import *   Hamcrest 提供了一个全新的断言语法(assert_that),可以只使用 assert_that 一个断言语句,结合 Hamcrest 提供的匹配符,就可以完成各种断言场景。   常用方法 API   1.比较两个字符串可以使用“equal_to”方法,示例代码如下:   assert_that("this is a string",equal_to("this is a string"))   2.数值匹配,比较两个值是否接近,可以使用“close_to”方法,用法:   assert_that(8,close_to(10,2))   解释:断言 8 接近于 (8 ~ 12)这个范围。   3.包含某个字符,使用“contains_string”方法,示例代码如下:   assert_that('abc',contains_string('d'))   案例   使用“雪球”应用,打开雪球 APP,点击页面上的搜索输入框输入“alibaba”,然后在搜索联想出来的列表里面点击“阿里巴巴”,选择股票分类,获取股票类型为“09988”的股票价格,最后验证价格在预期价格的 10% 范围浮动。示例代码片段如下:   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("http://*[@text='阿里巴巴']").click()   # 点击“股票”   self.driver.find_element_by_xpath(   "http://*[contains(@resource-id,'title_container')]//*[@text='股票']"   ).click()   # 获取股票价格   locator=(MobileBy.XPATH,   "http://*[@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))   上面的示例中,assert_that 是用于生成测试断言的样式化语句,比较两个值(current_price 与 expect_price)是否接近,断定实际值 current_price 在expect_price-expect_price*0.1 与expect_price+expect_price*0.1 范围区间浮动。   作为UI自动化测试三要素之一的断言,大家学会了么?下一篇我们来分享参数化用例,有兴趣的小伙伴可以关注一下哦!   复制“下方链接”,提升测试核心竞争力!   > 你好呀,喜欢这篇文章的话记得点个“赞”哦!大家的支持很重要~(^▽^) PS:有问题可以联系我们哦~v ceshiren001   https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=souhu×tamp=1654857291&author=QY返回搜狐,查看更多   责任编辑: 2022/6/20




欢迎光临 得知互动 (https://bbs.dezhifl.com/) Powered by Discuz! X3.4