51Testing软件测试论坛

标题: python生成的自动化测试报告问题,求大神解答。 [打印本页]

作者: adolf186    时间: 2016-11-25 09:17
标题: python生成的自动化测试报告问题,求大神解答。
运行如下脚本,没有报错,但是出来的测试结果却不是我想要的,好像那几个case没有执行一般:

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
import unittest,sys,time,re,datetime,HTMLTestRunner

class Dttest(unittest.TestCase):
      def setUpClass():
          desired_caps={}
          desired_caps['platformName']='Android'
          desired_caps['platformVersion']='4.4.2'
          desired_caps['deviceName']='HUAWEI P7-L00'
          desired_caps['appPackage']='com.tuniu.app.ui'
          desired_caps['appActivity']='.homepage.LaunchActivity'
          driver=webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)

      def tearDown():
          driver.close_app()
          driver.quit()

      def test_click1():
          driver.find_element_by_id('com.tuniu.app.ui:id/iv_style3_card_1').click()

      def test_click2():
          driver.find_element_by_id('com.tuniu.hotel:id/tv_query').click()

      def test_click3
          driver.find_element_by_id('com.tuniu.hotel:id/iv_product_small_image').click()


if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(Dttest('test_click1'))

    suite.addTest(Dttest('test_click2'))

    suite.addTest(Dttest('test_click3'))

    timestr = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
    filename = 'D:\\report\\result_'+timestr+'.html'
    fp = open(filename,'wb')
    runner = HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title='result',
        description='report'
    )
    runner.run(suite)
    fp.close()


eclipse执行脚本后的返回结果:
[attach]103641[/attach]

生成的测试报告,结果都是error:
[attach]103642[/attach]

这都是什么情况啊?



作者: 若尘_51    时间: 2016-11-25 09:53
boy,只能说你没有理解到位,unittest的用法,缺少@classmethod装饰器
详细的内容看看:
https://my.oschina.net/lionets/blog/268704?p={{currentPage+1}}
作者: Miss_love    时间: 2016-11-25 10:14
试试LS的方法
作者: adolf186    时间: 2016-11-25 13:18
若尘_51 发表于 2016-11-25 09:53
boy,只能说你没有理解到位,unittest的用法,缺少@classmethod装饰器
详细的内容看看:
https://my.oschin ...

哥,还是不行,一样的啊,求解啊
作者: adolf186    时间: 2016-11-25 13:18
Miss_love 发表于 2016-11-25 10:14
试试LS的方法

哥,我是新手,能说详细一些不?
作者: 若尘_51    时间: 2016-11-25 17:10
adolf186 发表于 2016-11-25 13:18
哥,还是不行,一样的啊,求解啊

把最新写的脚本附一份上来,还有报告里面的报错信息也截一下图
作者: adolf186    时间: 2016-12-1 14:13
若尘_51 发表于 2016-11-25 17:10
把最新写的脚本附一份上来,还有报告里面的报错信息也截一下图

都在上面呢,脚本和报告的错误截图
作者: 若尘_51    时间: 2016-12-1 14:18
adolf186 发表于 2016-12-1 14:13
都在上面呢,脚本和报告的错误截图

不是最新的,我是要看:
你的脚本是在哪里加上@classmethod装饰器,以及加上@classmethod装饰器的报错信息。
作者: adolf186    时间: 2016-12-1 14:26
若尘_51 发表于 2016-11-25 17:10
把最新写的脚本附一份上来,还有报告里面的报错信息也截一下图

貌似好像只是生成了报告,但是却没有运行用例
作者: adolf186    时间: 2016-12-1 15:05
若尘_51 发表于 2016-12-1 14:18
不是最新的,我是要看:
你的脚本是在哪里加上@classmethod装饰器,以及加上@classmethod装饰器的报错信 ...

基于原代码添加了这个:


报错信息:
Traceback (most recent call last):
  File "C:\Users\zhengtao\AppData\Local\Programs\Python\Python35\lib\unittest\suite.py", line 163, in _handleClassSetUp
    setUpClass()
TypeError: setUpClass() takes 0 positional arguments but 1 was given

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\appium\workspace\new test\Simple-test.py", line 72, in <module>
    runner.run(suite)
  File "C:\Users\zhengtao\AppData\Local\Programs\Python\Python35\lib\HTMLTestRunner.py", line 628, in run
    test(result)
  File "C:\Users\zhengtao\AppData\Local\Programs\Python\Python35\lib\unittest\suite.py", line 84, in __call__
    return self.run(*args, **kwds)
  File "C:\Users\zhengtao\AppData\Local\Programs\Python\Python35\lib\unittest\suite.py", line 114, in run
    self._handleClassSetUp(test, result)
  File "C:\Users\zhengtao\AppData\Local\Programs\Python\Python35\lib\unittest\suite.py", line 170, in _handleClassSetUp
    self._addClassOrModuleLevelException(result, e, errorName)
  File "C:\Users\zhengtao\AppData\Local\Programs\Python\Python35\lib\unittest\suite.py", line 216, in _addClassOrModuleLevelException
    result.addError(error, sys.exc_info())
  File "C:\Users\zhengtao\AppData\Local\Programs\Python\Python35\lib\HTMLTestRunner.py", line 584, in addError
    output = self.complete_output()
  File "C:\Users\zhengtao\AppData\Local\Programs\Python\Python35\lib\HTMLTestRunner.py", line 558, in complete_output
    return self.outputBuffer.getvalue()
AttributeError: '_TestResult' object has no attribute 'outputBuffer'


作者: 若尘_51    时间: 2016-12-1 16:48
adolf186 发表于 2016-12-1 15:05
基于原代码添加了这个:

你的所有的函数都加上self,再试试~~:
setUpClass(self)、tearDown(self)、.....
作者: adolf186    时间: 2016-12-1 17:32
若尘_51 发表于 2016-12-1 16:48
你的所有的函数都加上self,再试试~~:
setUpClass(self)、tearDown(self)、.....

我之前试过,会报错说是self入参没有定义之类的
作者: adolf186    时间: 2016-12-1 18:03
若尘_51 发表于 2016-12-1 16:48
你的所有的函数都加上self,再试试~~:
setUpClass(self)、tearDown(self)、.....

我按你提示的试了一下,脚本运行不报错了,测试报告也生成了,但是问题又来啦
用例都是执行报错的,好愁啊

作者: adolf186    时间: 2016-12-3 11:48
若尘_51 发表于 2016-12-1 16:48
你的所有的函数都加上self,再试试~~:
setUpClass(self)、tearDown(self)、.....

我的问题解决了,谢谢啊




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