Selenium+Python断言失败执行结果返回通过

最近使用selenium + python + unittest 框架执行UI自动化脚本,在debug过程发现,断言的结果失败了,最后的测试报告返回的结果却是「通过」
代码如下:

 def test_create(self):
        log = MyLog(xxxxxx)
        page = Page(self.driver, self.url)
        page.open()
        log.info('--------页面打开成功--------')

        try:
            page.btn_create_click()
            log.info("--------点击创建按钮成功--------")
            sleep(5)
        except Exception as e:
            log.error('创建按钮点击失败', e)

        try:
            name = page.btn_pop_sel1()
            Assertions.Assertions().assert_in_text(name.text, 'webuitest')

        except Exception as e:
            log.error('新建失败')

debug 过程发现,assert 执行失败,下一步运行到except模块了。具体的原因是断言在try 内容,捕捉到异常,跳转到Exception模块内了。
可调整代码执行顺序如下,执行结果返回正常

 def test_create(self):
        log = MyLog(xxxxxx)
        page = Page(self.driver, self.url)
        page.open()
        log.info('--------页面打开成功--------')

        try:
            page.btn_create_click()
            log.info("--------点击创建按钮成功--------")
            sleep(5)
        except Exception as e:
            log.error('创建按钮点击失败', e)

        try:
            name = page.btn_pop_sel1()

        except Exception as e:
            log.error('新建失败')
            
        Assertions.Assertions().assert_in_text(name.text, 'webuitest')

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用selenium可以很方便地连续执行多个测试用例。可以通过编写测试脚本,将多个测试用例按照顺序执行。在每个测试用例执行完毕后,可以通过selenium提供的方法来清除浏览器缓存,以便下一个测试用例的执行。同时,也可以使用selenium提供的断言方法来验证测试结果是否符合预期。在编写测试脚本时,需要注意测试用例之间的依赖关系,以及测试用例的执行顺序。 ### 回答2: Selenium是一种广泛使用的用于Web应用程序测试的工具,它可以连接到各种浏览器并与其交互。要在Selenium中连续执行多个测试用例,您可以使用测试执行器或测试套件。 测试执行器是一种工具,可以使测试自动化更加容易和高效。它可以帮助您自动运行多个测试用例,并报告测试结果和任何错误。SeleniumPython和Java版本都有测试执行器。 测试套件是一组测试用例的组合,可以在一起运行。测试套件在Selenium中非常有用,因为它们可以帮助您按顺序运行多个测试用例,并在完成所有测试用例后报告结果。 以下是在Selenium中使用测试套件和测试执行执行多个测试用例的步骤: 1.首先,编写多个测试用例,例如使用Selenium WebDriver启动浏览器,打开网页,输入文本,单击按钮等。 2.使用JUnit或TestNG等测试框架创建测试套件。您可以为每个测试用例创建一个测试类,并将它们添加到测试套件中。 3.创建测试执行器,并将测试套件作为输入。测试执行器将运行测试套件中的所有测试用例,并生成测试报告。 4.将测试执行器和Selenium WebDriver连接起来,以便在执行测试用例时控制浏览器。 以下是Python中使用Selenium和unittest模块创建测试套件和测试执行器的示例代码: import unittest from selenium import webdriver class TestCases(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_case1(self): self.driver.get("http://example.com") self.assertEqual(self.driver.title, "Example Domain") def test_case2(self): self.driver.get("http://example.com") link = self.driver.find_element_by_link_text("More information...") link.click() self.assertEqual(self.driver.title, "IANA — IANA-managed Reserved Domains") def tearDown(self): self.driver.quit() if __name__ == "__main__": suite = unittest.TestSuite() suite.addTest(TestCases('test_case1')) suite.addTest(TestCases('test_case2')) runner = unittest.TextTestRunner(verbosity=2) runner.run(suite) 在此示例中,我们首先定义一个名为TestCases的测试类,并在其中编写两个测试用例。setUp方法在每个测试用例开始之前启动浏览器,tearDown方法在测试用例完成后关闭浏览器。 在__main__方法中,我们创建一个测试套件,并将两个测试用例添加到其中。然后,我们创建一个测试执行器,并将测试套件作为输入。最后,我们使用TextTestRunner运行测试执行器,并打印结果。 通过创建测试套件和测试执行器,我们可以自动运行多个测试用例,并将结果输出到控制台或文件中。这使我们能够快速识别任何错误并进行修复。 ### 回答3: Selenium 是一款自动化测试工具,可以用于执行多个测试用例。在使用 Selenium 连续执行多个测试用例时,我们需要考虑以下几点: 一、测试用例的编写 测试用例的编写需要满足以下要求: 1. 测试用例需要独立运行,不受其他测试用例的影响。 2. 测试用例需要提供清晰的测试目标和测试步骤。 3. 测试用例需要提供清晰的测试结果和断言条件。 二、测试用例的执行 测试用例的执行需要满足以下要求: 1. 在执行每个测试用例之前,需要进行必要的测试环境准备,以保证测试用例能够正常执行。 2. 在执行每个测试用例之后,需要进行必要的测试环境清理,以确保测试环境不受该测试用例的影响。 3. 执行测试用例时需要捕获异常并及时处理,以保证测试用例的顺利执行。 三、测试报告的生成 测试用例执行完毕后,需要生成测试报告来记录测试过程和测试结果。测试报告应包含以下内容: 1. 测试用例的执行结果和执行时间。 2. 测试过程中的异常信息和错误日志。 3. 测试结果的统计和分析,如通过率、失败率等。 综上所述,使用 Selenium 连续执行多个测试用例需要测试用例的编写、测试用例的执行和测试报告的生成。在执行测试用例时需要考虑环境准备和清理,以确保测试用例的正确执行。生成测试报告可以为测试结果的统计和分析提供便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值