51Testing软件测试论坛

标题: python+selenium 开源分享 [打印本页]

作者: 海鸥一飞    时间: 2018-2-7 15:21
标题: python+selenium 开源分享
     说明

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

     功能

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

     下载项目:
  1. git clone git@github.com:Louis-me/selenium.git
复制代码
    配置openurl.yaml
  1. openurl: http://www....com/login
复制代码
    配置用例yaml
  1. testinfo:
  2.     - id: 001
  3.       moudle: mok模块
  4.       intr: 个人
  5. testcase:
  6.     - element_info: //*[@id="login"]/div[1]/div[2]/form/div[1]/input
  7.       find_type: by_xpath
  8.       operate_type: send_keys
  9.       text: test
  10.     - element_info: //*[@id="login"]/div[1]/div[2]/form/div[2]/input
  11.       find_type: by_xpath
  12.       operate_type: send_keys
  13.       text: 123456
  14.     - element_info: //*[@id="login"]/div[1]/div[2]/form/button[1]
  15.       find_type: by_xpath
  16.       operate_type: click
  17. check:
  18.     - element_info: //*[@id="home"]/a
  19.       find_type: by_xpath
  20.     - element_info: //*[@id="setting111"]/a
  21.       find_type: by_xpath
复制代码
    用例管理

     基本上是直接复制
  1. PATH = lambda p: os.path.abspath(
  2.     os.path.join(os.path.dirname(__file__), p)
  3. )
  4. from testRunner.runnerBase import TestInterfaceCase
  5. class testSetting(TestInterfaceCase):
  6.     def setUp(self, methodName=''):
  7.         super(testSetting, self).setUp()
  8.         self.bc = webCase.WebCaseBase(driver=self.driver, casename="testSetting")
  9.     def tearDown(self):
  10.         self.driver.quit()
  11.         pass
  12.     def test_setting(self):
  13.         self.bc.execCase(PATH("../yaml/setting.yaml"))
复制代码
    代码人口

  1. def _report():
  2.     workbook = xlsxwriter.Workbook('report.xlsx')
  3.     worksheet = workbook.add_worksheet("测试总况")
  4.     worksheet2 = workbook.add_worksheet("测试详情")
  5.     re = report.OperateReport(wd=workbook)
  6.     re.init(worksheet, data=util.DATA)
  7.     re.test_detail(worksheet2, data=util.INFO)
  8.     re.close()
  9. def runnerCaseWeb():
  10.     starttime = datetime.datetime.now()
  11.     suite = unittest.TestSuite()
  12.     suite.addTest(TestInterfaceCase.parametrize(testLogin)) # 引用测试用例类
  13.     suite.addTest(TestInterfaceCase.parametrize(testSetting))#引用测试用例类
  14.     unittest.TextTestRunner(verbosity=2).run(suite)
  15.     endtime = datetime.datetime.now()
  16.     util.DATA["sum_time"] = str((endtime - starttime).seconds) + "秒"
  17.     util.DATA["test_date"] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
  18. if __name__ == '__main__':
  19.     runnerCaseWeb()
  20.     _report()
复制代码
    命令行运行
  1. pyhton testRunner/runner.py
复制代码
    测试报告
[attach]110691[/attach]
[attach]110692[/attach]


作者: 梦想家    时间: 2018-5-14 16:53





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2