首页 > 其他 > 详细

Pytest测试框架基础--常用功能介绍

时间:2021-07-27 15:35:36      阅读:31      评论:0      收藏:0      [点我收藏+]

  本节主要系统介绍一下Pytest在自动化测试中常用的一些用法,自己编写了一个自动化测试脚本,附在末尾

  一、断言

  学过unittest的同学知道,也是有断言方法的,但是pytest与其有点不同,更为简单。

  判断a是否与b相等  assert a==b

  判断a是否存在b中 assert a in b

  判断a与b不相等 assert a != b

 

  二、指定顺序执行用例

  测试用例的执行顺序是按照字母顺序执行的,如果想指定其执行顺序,可以使用order用法。

  首先需要安装pytest-ordering库,然后在测试用例上面调用pytest.mark.run(order=1),数字字母越小越先执行。

  @pytest.mark.run(order=1)

  def test_login_account_ok(self):

      self.driver.send_account(‘account‘)
  self.driver.send_password(‘pwd‘)
  self.driver.btn_click()
  time.sleep(1)
  assert self.driver.get_current_url() == ‘http://ygc.com‘

  三、参数化

  
在编写测试用例时候,只有某一个值进行改变,可以将此值进行参数化,有多少个值执行多少次。
  如 百度搜索:selenium,自动化,123,空置

  @pytest.mark.parametrize(‘search_word‘,[‘selenium‘,‘自动化‘,‘123‘,‘ ‘])
  def test_baidu(self,search_word):
    driver.find_element_by_id(‘kw‘).
clear()
    driver.find_element_by_id(‘kw‘).send_keys(search_word)
    driver.find_element_by_id(‘su‘).click()

  备注:以上测试用例会执行4次,每次百度输入框输入的值分别为selenium,自动化,123,空;测试用例的参数必须要与parameterize里面的参数一致

  如果是需要传入多个参数,比如登录的用户名,密码 可以写为:
  @pytest.mark.parametrize(‘account,pwd‘,[(‘admin‘,‘123456‘),(‘admin‘,‘111111‘),(‘admin‘,‘‘)])
  
  def test_login(self,account,pwd):
    driver.find_element_by_id(‘account‘).
clear()
    driver.find_element_by_id(‘account‘).send_keys(account)
    driver.find_element_by_id(‘pwd‘).clear()
    driver.find_element_by_id(‘pwd‘).send_keys(pwd)
    driver.find_element_by_id(‘su‘).click()

  
四、不执行某个测试用例

  
如果想要某个测试用例不执行,可以加上@pytest.mark.skip,这样某个测试用例就会跳过执行。

  五、测试用例前后执行
  
在执行测试用例之前的预置条件以及执行完测试用例的后置条件,比如,在测试网站时候,通常需要先进行登录,测试完之后退出登录,关闭浏览器。
  setup/teardown
  def setup(def):
    print("before testing")

  def teardown(def):
    print("Finish testing")


  每执行一个测试用例,就会执行一次setup,teardown.比如有3个测试用例,那么对应的setup,teardown也会执行三遍。
  如果只想执行一遍,那么可以使用 setup_class,teardown_class,这样只会在测试用例之前执行一次setup_class,所有测试用例执行完成后执行一次teardown_class

 
 

  

Pytest测试框架基础--常用功能介绍

原文:https://www.cnblogs.com/longlongleg/p/15065717.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!