Web UI自动化测试框架Seldom实战

发表于:2021-1-12 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Water_you    来源:博客园

  1、Seldom简介
  Seldom是基于selenium 和 unittest 的 Web UI自动化测试框架。
  ·提供更加简单API编写自动化测试
  ·提供脚手架,快速生成自动化测试项目。
  ·全局启动和关闭浏览器,减少浏览器的启动次数。
  ·支持用例参数化。
  ·支持用例失败/错误重跑。
  ·定制化HTML测试报告,用例失败/错误自动截图。
  ·支持XML测试报告
  2、Seldom 安装
  2.1、快速安装
  目前已经上传 pypi.org ,可以使用pip命令安装。
  > pip install seldom
  2.2、体验最新代码
  如果你想随时体验最新的代码,可以使用下面的命令。
  > pip install -U git+https://github.com/defnngj/seldom.git@master
  2.3、如果需要对Seldeom进行二次开发,则可以克隆git项目下来进行二次开发
  $ git clone https://github.com/SeldomQA/seldom.git 
  3、seldom创建项目
  3.1、创建一个python文件test_sample.py。
  import seldom
  class BaiduTest(seldom.TestCase):
      def test_case(self):
          """a simple test case """
          self.open("https://www.baidu.com")
          self.type(id_="kw", text="seldom")
          self.click(css="#su")
          self.assertTitle("seldom_百度搜索")
  if __name__ == '__main__':
      seldom.main("test_sample.py")
  3.2、seldom提供了脚手架,可以快速的帮我们创建Web UI自动化项目。
  > seldom --project mypro
  
  4、seldon浏览器与驱动   
  4.1、在seldom中需要只需要修改一个配置即可设置浏览器。不仅支持浏览器,还支持 Mobile web 模式,支持的phone和pad类型如下:
  PHONE_LIST = [
      'iPhone 5', 'iPhone 6', 'iPhone 7', 'iPhone 8', 'iPhone 8 Plus',
      'iPhone X', 'Pixel 2', 'Pixel XL', "Galaxy S5"
  ]
  PAD_LIST = ['iPad', 'iPad Pro']
  在main()方法中通过browser参数设置不同的浏览器,默认为Chrome浏览器。
  import seldom
  if __name__ == '__main__':
      seldom.main(browser="chrome") # chrome浏览器,默认值
      seldom.main(browser="firefox") # firefox浏览器
      seldom.main(browser="ie")  # IE浏览器
      seldom.main(browser="opera") # opera浏览器
      seldom.main(browser="edge") # edge浏览器
      seldom.main(browser="safari") # safari浏览器
      seldom.main(browser="chrome_headless") # chrome浏览器headless模式
      seldom.main(browser="firefox_headless") # Firefox浏览器headless模式
      seldom.main(browser="iPhone 6") # iPhone 6 手机浏览器展示
  4.2、开启headless模式,Firefox和 Chrome浏览器支持headless 模式,即将浏览器置于后台运行,这样不会影响到我们在测试机上完成其他工作。
  import seldom
  from seldom import ChromeConfig
  #只需要将 ChromeConfig 类中的 headless 设置为 True即可, Firefox浏览器配置方法类似。
  if __name__ == '__main__':
      ChromeConfig.headless = True
      seldom.main(browser="chrome")
  4.3、开放Chrome浏览器配置能力,seldom为了更加方便的使用驱动,屏蔽了浏览器的配置,但架不住部分个性化的需求,比如禁用浏览器插件,设置浏览器代理等。所以,通过ChromeConfig类的参数来开放这些能力。
  例如,浏览器忽略无效证书的问题。
  import seldom
  from seldom import ChromeConfig
  from selenium.webdriver import ChromeOptions
  if __name__ == '__main__':
      chrome_options = ChromeOptions()
      chrome_options.add_argument('--ignore-certificate-errors')  # 忽略无效证书的问题
      ChromeConfig.options = chrome_options
      seldom.main(browser="chrome")
  4.4、支持远程节点(Selenium Grid)
  import seldom
  from seldom import ChromeConfig
  # 需要先下载selenium-server,然后启动服务java -jar selenium-server-standalone-3.141.59.jar
  if __name__ == '__main__': 
      ChromeConfig.command_executor = "http://127.0.0.1:4444/wd/hub"
      seldom.main(browser="chrome")
  5、seldom main() 方法
  main()方法是seldom运行测试的入口, 很多重要的配置都是通过这个方法完成。
  import seldom
  """
  path : 指定测试目录或文件。
  browser : 指定测试浏览器,默认Chrome。
  report : 自定义测试报告的名称,默认格式为2020_04_04_11_55_20_result.html
  title : 指定测试报告标题。
  description : 指定测试报告描述。
  debug : debug模式,设置为True不生成测试HTML测试,默认为False。
  rerun : 设置失败重新运行次数,默认为 0。
  save_last_run : 设置只保存最后一次的结果,默认为False。
  timeout : 设置超时时间,默认10秒
  xmlrunner: 设置为 True ,生成XML格式的报告。不支持同时生成HTML和 XML 两种格式的报告。
  """
  if __name__ == '__main__':
      seldom.main(path="./",
                browser="chrome",
                report=None,
                title="百度测试用例",
                description="测试环境:chrome",
                debug=False,
                rerun=0,
                save_last_run=False,
                timeout=None,
                xmlrunner=False
      )

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • rskdjypython
    2021-1-18 21:21:19

    感谢楼主,好人一生平安,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号