2-5-1断言

Posted 射手九个半

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2-5-1断言相关的知识,希望对你有一定的参考价值。

断言assert

  • 断言一定是选择有指定意义的内容来进行断言
  • 断言的形式:
    1. 一般常用的断言就是通过text来进行
    2. 除此之外,如果需要流程继续执行,可以考虑用显式等待。
  • 目的:用于校验自动化执行是否正确(达到预期结果)
  • 添加断言的节点:
    1. 在流程结束的时候
    2. 或者是在关键节点的时候(关键节点就是在流程中一些特定的重要场景下,可以适当添加断言机制来判定,以便于后续流程的正常运行。)
  • assert函数:assert 预期结果的text==实际定位的text,异常信息 
  •  

     

       
    • 1   #预期结果:可以在购物车中去查找到的手机
      2     assert_text=\'苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G\'
      3     # text=driver.find_element(\'xpath\',\'//a[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]\').text
      4     #使用断言进行判断是否可以在购物车中去查找到的手机
      5     assert assert_text==driver.find_element(\'xpath\',\'//a[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]\').text,\'加入购物车失败\'

       

作业:将商品添加购物车流程,可以在购物车中再添加断言校验

 

 1 # 课后作业:
 2 # 1. 添加商品到购物车流程的自动化实现。商品推荐使用iPhone 6 plus的手机商品来实现流程
 3 # 定位到搜索框,搜索iPhone 6 plus
 4 
 5 from time import sleep
 6 
 7 from selenium import webdriver
 8 
 9 # 获取浏览器驱动
10 from selenium.webdriver.support.wait import WebDriverWait
11 
12 driver=webdriver.Chrome()
13 #访问商城的url
14 
15 driver.get(\'http://39.98.138.157/shopxo/index.php\')
16 #浏览器最大化
17 driver.maximize_window()
18 driver.implicitly_wait(10)
19 
20 
21 def login():
22     #点击登录,进入登录页面
23     driver.find_element(\'xpath\',\'//div[@class="menu-hd"]/a[text()="登录"]\').click()
24     sleep(2)
25     #输入用户名
26     driver.find_element(\'xpath\',\'//input[@name="accounts"]\').send_keys(\'18700000000\')
27     #输入密码
28     driver.find_element(\'xpath\',\'//input[@name="pwd"]\').send_keys(\'18700000000\')
29     #点击登录按钮
30     driver.find_element(\'xpath\',\'//button[text()="登录"]\').click()
31     # #显示等待校验是否登录成功
32     # WebDriverWait(driver,10,0.5).until(
33     #     lambda el:driver.find_element(\'xpath\',\'//p[text()="登录成功"]\'),message=\'登录失败\'
34     # )
35     #使用assert校验是否登录成功
36     assert_text=\'18700000000\'
37     username=driver.find_element(\'xpath\',\'//span[@class="s-name"]/em[2]\').text
38     assert assert_text==username,\'登录失败\'
39 def AddToCart():
40     #点击搜索框
41     driver.find_element(\'id\',\'search-input\').click()
42     #在搜索框中输入iPhone 6 plus
43     driver.find_element(\'id\',\'search-input\').send_keys(\'iPhone 6 plus\')
44     #点击搜索按钮
45     driver.find_element(\'id\',\'ai-topsearch\').click()
46     #点击手机图标
47     driver.find_element(\'xpath\',\'//p[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]\').click()
48     print(driver.title)
49     #获取到所有句柄
50     hds=driver.window_handles
51     # 切换句柄
52     driver.switch_to.window(hds[1])
53     print(driver.title)
54     #选择套餐
55     driver.find_element(\'xpath\',\'//li[@data-value="套餐一"]\').click()
56     sleep(2)
57     #选择颜色
58     driver.find_element(\'xpath\',\'//li[@data-value="银色"]\').click()
59     sleep(2)
60     #选择容量
61     driver.find_element(\'xpath\',\'//li[@data-value="32G"]\').click()
62     #设置数量
63     driver.find_element(\'xpath\',\'//input[@type="number"]\').clear()
64     driver.find_element(\'xpath\',\'//input[@type="number"]\').send_keys(2)
65     # 点击加入购物车
66     driver.find_element(\'xpath\',\'//button[@title="加入购物车"]\').click()
67     #使用显示等待判断是否加入购物车成功  //p[text()="加入成功"]
68     #
69     # WebDriverWait(driver,10,0.5).until(
70     #     lambda el:driver.find_element(\'xpath\',\'//p[text()="加入成功"]\'),message=\'加入失败\'
71     # )
72     # 使用text判断是否加入购物车成功 //span[text()="购物车"]
73     driver.find_element(\'xpath\',\'//span[text()="购物车"]\').click()
74     #预期结果:可以在购物车中去查找到的手机
75     assert_text=\'苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G\'
76     # text=driver.find_element(\'xpath\',\'//a[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]\').text
77     #使用断言进行判断是否可以在购物车中去查找到的手机
78     assert assert_text==driver.find_element(\'xpath\',\'//a[text()="苹果(Apple)iPhone 6 Plus (A1524)移动联通电信4G手机 金色 16G"]\').text,\'加入购物车失败\'
79 
80 
81 #调用登录方法
82 login()
83 #调用加入购物车的方法
84 AddToCart()

 

 

 

 

 

 

 

以上是关于2-5-1断言的主要内容,如果未能解决你的问题,请参考以下文章

postman测试实例--断言

postman测试实例--断言

postman断言作用及怎么使用

Swift编程语言学习1.7——断言

断言啥时候应该留在生产代码中? [关闭]

jmeter添加断言