python+selenium 开源分享

作者: 望月成三人 | 来源:发表于2017-04-24 18:56 被阅读358次

    说明

    之前分享过自己写的appium框架,有很多待优化的地方,先从selenium开始优化

    功能

    • yaml维护用例
    • 支持多检查点
    • excel记录报告,失败有截图展示
    • 本地记录日志
    • 参数化测试用例管理

    用法

    配置openurl.yaml

    openurl: http://www....com/login
    

    配置用例yaml

    testinfo: 
        - id: 001
          moudle: mok模块
          intr: 个人
    testcase:
        - element_info: //*[@id="login"]/div[1]/div[2]/form/div[1]/input
          find_type: by_xpath
          operate_type: send_keys
          text: test
        - element_info: //*[@id="login"]/div[1]/div[2]/form/div[2]/input
          find_type: by_xpath
          operate_type: send_keys
          text: 123456
        - element_info: //*[@id="login"]/div[1]/div[2]/form/button[1]
          find_type: by_xpath
          operate_type: click
    check:
        - element_info: //*[@id="home"]/a
          find_type: by_xpath
        - element_info: //*[@id="setting111"]/a
          find_type: by_xpath
    
    

    用例管理

    基本上是直接复制

    PATH = lambda p: os.path.abspath(
        os.path.join(os.path.dirname(__file__), p)
    )
    from testRunner.runnerBase import TestInterfaceCase
    class testSetting(TestInterfaceCase):
        def setUp(self, methodName=''):
            super(testSetting, self).setUp()
            self.bc = webCase.WebCaseBase(driver=self.driver, casename="testSetting")
        def tearDown(self):
            self.driver.quit()
            pass
        def test_setting(self):
            self.bc.execCase(PATH("../yaml/setting.yaml"))
    

    代码人口

    def _report():
        workbook = xlsxwriter.Workbook('report.xlsx')
        worksheet = workbook.add_worksheet("测试总况")
        worksheet2 = workbook.add_worksheet("测试详情")
        re = report.OperateReport(wd=workbook)
        re.init(worksheet, data=util.DATA)
        re.test_detail(worksheet2, data=util.INFO)
        re.close()
    def runnerCaseWeb():
        starttime = datetime.datetime.now()
        suite = unittest.TestSuite()
        suite.addTest(TestInterfaceCase.parametrize(testLogin)) # 引用测试用例类
        suite.addTest(TestInterfaceCase.parametrize(testSetting))#引用测试用例类
        unittest.TextTestRunner(verbosity=2).run(suite)
        endtime = datetime.datetime.now()
        util.DATA["sum_time"] = str((endtime - starttime).seconds) + "秒"
        util.DATA["test_date"] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    if __name__ == '__main__':
        runnerCaseWeb()
        _report()
    

    命名行运行:

    pyhton testRunner/runner.py
    

    测试报告

    Paste_Image.png Paste_Image.png

    相关文章

      网友评论

      • 747d38d285a0:你好,代码 我下不下来,能不能发我一份?306436517@qq.com.谢谢
        望月成三人:https://github.com/Louis-me/selenium
      • Spareribs:用pytest生成的报告好看
      • FishSky:再请问如何将截图保存到Excel的?
        望月成三人:直接看代码吧,testLog是记录日志和截图
      • FishSky:re = report.OperateReport(wd=workbook)
        re.init(worksheet, data=util.DATA)
        re.test_detail(worksheet2, data=util.INFO)
        re.close()
        请问这里的report是Python的模块,还是自己写的?作用是什么?
      • 范季康:干吗不生成 html 或者 xml 格式的报告呀?excel 不方便搞持续集成吧?
        望月成三人:这个没有关系,集成的话,有专门的报告展示插件。用excel自动生成报告,有利于统计和拓展,特别是有些领导是需要单独的excel报告;

      本文标题:python+selenium 开源分享

      本文链接:https://www.haomeiwen.com/subject/acgpzttx.html