51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1507|回复: 7
打印 上一主题 下一主题

[求助] python+unittest 多用例测试执行失败的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-6-9 11:14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景
自己写了一个测试框架,在多用例执行的时候每次,执行成功目录的第一个用例后,后面的用例均失败。

目录结构
  1. D:\AUTOMEDLINKER
  2. ├─.idea
  3. ├─apk
  4. ├─common
  5. ├─log
  6. ├─medcases
  7. │  ├─ChannelTest
  8. │  ├─HeadlineTest
  9. │  └─LoginTest
  10. ├─report
  11. └─screenshot
复制代码
用例运行代码
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # Created by nil_mmm
  4. import unittest
  5. import HTMLTestRunner
  6. import time

  7. # 配置Case的路径
  8. case_dir = [
  9.     'LoginTest',
  10.     'ChannelTest']
  11. # 配置报告名称
  12. filename = "D:/automedlinker/report/" + time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) + ".html"
  13. # 配置报告标题
  14. report_title = 'Auto Case Report'
  15. # 配置报告描述
  16. report_description = ' '


  17. if __name__ == '__main__':
  18.     suite = unittest.TestSuite()
  19.     for cases in case_dir:
  20.         cases = unittest.defaultTestLoader.discover(cases, pattern='*Test.py', top_level_dir='medcases')
  21.         suite.addTests(cases)
  22.     fp = file(filename, 'wb')
  23.      #使用 HTMLTestRunner 配置参数,输出报告路径、报告标题、描述
  24.     runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=report_title, description=report_description)
  25.     runner.run(suite)
复制代码
test_case编写结构 附我的一个模板用例
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # Created by nil_mmm
  4. import unittest
  5. import android_caps
  6. import traceback
  7. from common import Main
  8. from common import GetScreen
  9. from common import UserLogin

  10. class Case(unittest.TestCase):
  11.     def setUp(self):
  12.         self.driver = android_caps.my_driver
  13.         print '第一个用例检测'

  14.     def tearDown(self):
  15.         self.driver.quit()

  16.     def test_first(self):
  17.         try:
  18.             UserLogin.jump_session_page()
  19.             print '进入搜索界面'
  20.             Main.get_resource_id('tv_search').click()
  21.             Main.get_resource_id('et_search_action').send_keys('test')
  22.             print '搜索test'
  23.             Main.get_resource_id('tv_search').click()
  24.             Main.get_resource_id('tv_title')
  25.         except:
  26.             GetScreen.get_screenshot(self.driver,'test')
  27.             traceback.print_exc()
  28.             self.fail()
复制代码
输出报告

问题
找了好久没找到原因.因为单个用例都是可以执行的。
万分感谢提供帮助的同学.

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

3#
发表于 2017-6-9 14:36:21 | 只看该作者
可以贴一些appium的log 或者把你的setup 方法贴出来看看。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2017-6-9 14:36:50 | 只看该作者
我之前遇到一次,我把try except 当时去掉。然后试过貌似行了,好久不弄了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2017-6-9 14:37:31 | 只看该作者
看样appium session挂掉了,排除框架本身,用命令行或者IDE,能执行多个case成功不?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2017-6-9 14:38:06 | 只看该作者
小皮球的故事 发表于 2017-6-9 14:37
看样appium session挂掉了,排除框架本身,用命令行或者IDE,能执行多个case成功不?

多个case不行
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2017-6-9 14:38:45 | 只看该作者

那可能跟你使用和管理driver的方式会有一定关系,可以简化代码,缩小模型了,再看看
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2017-6-9 14:39:15 | 只看该作者
小皮球的故事 发表于 2017-6-9 14:38
那可能跟你使用和管理driver的方式会有一定关系,可以简化代码,缩小模型了,再看看

好的,谢谢 我再看看
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-21 08:39 , Processed in 0.071292 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表