• python+selenium 组织用例方式 总结


    1、unittest.main()

    将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行他们。执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行。

    class Test_TC_Login(unittest.TestCase):
    def setUp(self):
    self.driver = webdriver.Chrome(cc.driverPath())
    self.base_url = cc.baseUrl()
    self.testCaseInfo = TestCaseInfo(id=1, name="Test case name", owner='xua')
    self.testResult = TestReport()
    LogUtility.CreateLoggerFile("Test_TC_Login")

    def test_A(self):
    try:
    self.testCaseInfo.starttime = cc.getCurrentTime()
    # Step1: open base site
    LogUtility.Log("Open Base site" + self.base_url)
    self.driver.get(self.base_url)

    # Step2: Open Login page
    login_page = LoginPage(self.driver)

    # Step3: Enter username & password
    LogUtility.Log("Login web using username")
    login_page.set_username("username")
    login_page.set_password("password")

    time.sleep(2)
    # Checkpoint1: Check popup dialog title
    LogUtility.Log("Check whether sign in dialog exists or not")
    self.assertEqual(login_page.get_DiaglogTitle(), "Sign in")

    # time.sleep(3)
    # Step4: Cancel dialog
    login_page.click_cancel()
    self.testCaseInfo.result = "Pass"

    except Exception as err:
    self.testCaseInfo.errorinfo = str(err)
    LogUtility.Log(("Got error: " + str(err)))
    finally:
    self.testCaseInfo.endtime = cc.getCurrentTime()
    self.testCaseInfo.secondsDuration = cc.timeDiff(self.testCaseInfo.starttime, self.testCaseInfo.endtime)

    def tearDown(self):
    self.driver.close()
    self.testResult.WriteHTML(self.testCaseInfo)


    if __name__ == '__main__':
    unittest.main()

    2、批量执行:suite.addTest

        if __name__=="__main__":

             suite = unittest.TestSuite()

       suite.addTest(TestIndex("test_index")) #类里的某个测试方法

          suite.addTest(TestSys('test_ddt'))

             runner=unittest.TextTestRunner()

             runner.run(suite)

       这样你可以在一个文件里面执行所有的用例,也可以使用“#”注释掉当前不需要执行的那条用例

    3、unittest.defaultTestLoader.discover

       defaultTestLoader()类,通过该类下面的discover()方法可自动更具测试目录start_dir匹配查找测试用例文件(test*.py),并将查找到的测试用例组装到测试套件,因此可以直接通过run()方法执行discover。用法如下:

    discover=unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')

    if __name__ == "__main__":
    # 设置报告文件保存路径
    report_path = os.getcwd() + '/test_report/'
    # 获取系统当前时间
    now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
    # 设置报告名称格式
    HtmlFile = report_path + now+"自动化测试报告.html"
    fp = open(HtmlFile, "wb")

    suiteA = unittest.TestLoader().loadTestsFromTestCase(TestSys)
    suiteB = unittest.TestLoader().loadTestsFromTestCase(TestAuth)
    suite = unittest.TestSuite([suiteA, suiteB])

      runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"商户管理系统测试报告", description=u"用例测试情况")
    #runner = unittest.TextTestRunner()
    runner.run(suite)
  • 相关阅读:
    一些网站后台模板源码分析 Particleground.js 验证码
    C# 接口的作用浅谈举例(转)
    C# 批量修改文件名
    12306抢票软件相关接口以及数据格式
    StackExChange.Redis for C# 中文文档
    asp.net core 3+ 修改view后自动重新编译运行
    ASP.NET MVC https全局配置
    c#DateTime与unix时间戳互相转换
    mongodb创建管理员用户
    Office365激活方法(无需密钥)
  • 原文地址:https://www.cnblogs.com/yoyo008/p/9467110.html
Copyright © 2020-2023  润新知