1.UI自动化断言
https://ceshiren.com/t/topic/21361
1.1常规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")]')
return True if len(name)!=0 else False
assert check()
1.2Hamcrest断言
https://ceshiren.com/t/topic/16765
Hamcrest 是一个以测试为目的,能组合成灵活表达式的匹配器类库,用于编写断言的框架,使用这个框架编写断言,可以提高可读性以及开发测试的效率。Hamcrest 提供了大量被称为“匹配器”的方法。每个匹配器都设计用于执行特定的比较操作。Hamcrest 的可扩展性强,允许创建自定义的匹配器,并支持多种语言。
# 安装
pip install pyhamcrest
# 导包
from hamcrest import *
断言方式
# 1.比较两个字符串相等,示例代码如下:
assert_that("this is a string",equal_to("this is a string"))
# 2.数值匹配,比较两个值是否接近,示例代码如下:
# 解释:断言 8 接近于 (8 ~ 12)这个范围。
assert_that(8,close_to(10,2))
# 3.包含某个字符,示例代码如下:
assert_that('abc',contains_string('d'))
REST-Assured
2.接口自动化断言
接口入参很多 https://ceshiren.com/t/topic/3753
1. Jayway JsonPath
2. Mustache
2.1jsonpath
用于JSON文档的查询语言,它提供了一种简洁的方式来定位和筛选JSON数据
https://ceshiren.com/t/topic/21856
import requests
from jsonpath import jsonpath
r = requests.get("https://ceshiren.com/t/topic/6950.json").json()
result = jsonpath(r, "$..posts[?(@.name == '思寒')].cooked")[1]
assert "涨薪" in result
2.2JSONSchema
https://ceshiren.com/t/topic/27113
https://ceshiren.com/t/topic/21915
整体结构响应断言(场景:针对少量业务字段断言,其他字段不做数据正确性断言,只做类型和整体结果的校验)
ms题 :https://ceshiren.com/t/topic/23241/3
操作:
1.预先生成对应结构的Schema.
2.将实际取到的响应与预先生成的Schema进行对比。
2.3GPath
用于XML和HTML文档的查询语言,它类似于XPath
xml格式响应断言 https://ceshiren.com/t/topic/21788
GPath和jsonpath的区别
https://ceshiren.com/t/topic/29384
https://ceshiren.com/t/topic/29385
1.对xml格式数据断言https://ceshiren.com/t/topic/21788
2.selenium get_attribute
https://www.codenong.com/cs109099358/
获取元素属性值,做断言
driver.find_element(xx).get_attribute('textContent') #获取元素标签内容
driver.find_element(xx).text #等同上边的方法
driver.find_element(xx).get_attribute('innerHTML') # 获取元素内的全部HTML
driver.find_element(xx).get_attribute('outerHTML') # 获取包含选中元素的HTML