老师,我已经是完全照抄你的代码了,但是0和1就是传不进去,parames输出为None,能帮忙看看吗

来源:5-14 多进程、unittest、HTMLTestRunner、启动服务流程梳理代码重构

慕函数4119770

2020-06-29

import unittest
import HTMLTestRunner
from PO.page.login_success import Login_success_page
from BASE.baseaction import BaseAction
from BASE.server import Server
from multiprocessing import Process
from BASE.write_command import WriteuserCommand
class ParameTestCase(unittest.TestCase):
   def __init__(self,methodName='runTest',parame=None):
       super(ParameTestCase,self).__init__(methodName)
       global parames
       parames = parame

class CaseTest(ParameTestCase):
   @classmethod
   def setUpClass(cls): 
       print(parames)

       '''
       cls.ba = BaseAction(parames)
       cls.lp = Login_success_page()
       '''

   def setUp(self):
       pass

   def test_01(self):

       '''
       self.ba.wait_element(self.lp.login_button,20)
       self.ba.find_element(self.lp.login_button).click()
       self.ba.wait_element(self.lp.login_user, 20)
       self.ba.send_keys_text(self.lp.login_user,'wm8')
       self.ba.send_keys_text(self.lp.login_password,'aaaa2222')
       self.ba.find_element(self.lp.login_sure_button).click()
       el = self.ba.find_element(self.lp.close_button)
       self.assertTrue(el)
       '''

   def test_02(self):

       '''
       self.ba.wait_element(self.lp.login_button, 20)
       self.ba.find_element(self.lp.login_button).click()
       self.ba.wait_element(self.lp.login_user, 20)
       self.ba.send_keys_text(self.lp.login_user, 'wm8')
       self.ba.send_keys_text(self.lp.login_password, 'aaa22232')
       self.ba.find_element(self.lp.login_sure_button).click()
       el = self.ba.find_element(self.lp.close_button)
       self.assertTrue(el)
       '''


   def tearDown(self):
       pass

   @classmethod
   def tearDownClass(cls):
       pass


def appium_init():
   sever = Server()
   sever.main()

def get_count():
   write_file = WriteuserCommand()
   num = write_file.get_file_lines()
   return num


def get_suit(i):
   suit = unittest.TestSuite()
   suit.addTest(CaseTest('test_02',parame=i))
   suit.addTest(CaseTest('test_01',parame=i))
   html = r'D:\apppro\appreport\app_report' + str(i) + '.html'
   f = open(html, 'w')
   runner = HTMLTestRunner.HTMLTestRunner(stream=f, title='alex', description='alex')
   f.close()
   runner.run(suit)


if __name__ == '__main__':
   appium_init()
   for i in range(get_count()):
       t = Process(target=get_suit,args=(i,))
       t.start()


写回答

1回答

Mushishi

2020-06-29

可以啊:
import unittest
from multiprocessing import Process

class ParameTestCase(unittest.TestCase):
   def __init__(self,methodName='runTest',parame=None):
       super(ParameTestCase,self).__init__(methodName)
       global parames
       parames = parame

class CaseTest(ParameTestCase):
   @classmethod
   def setUpClass(cls): 
       print("setupclass--->",parames)


   def setUp(self):
       pass

   def test_01(self):

       print("test_01",parames)

   def test_02(self):

       print("test_02",parames)


   def tearDown(self):
       pass

   @classmethod
   def tearDownClass(cls):
       pass



def get_count():
   return 2


def get_suit(i):
   suit = unittest.TestSuite()
   suit.addTest(CaseTest('test_02',parame=i))
   suit.addTest(CaseTest('test_01',parame=i))
   runner = unittest.TextTestRunner()
   runner.run(suit)



if __name__ == '__main__':
   
   for i in range(get_count()):
       t = Process(target=get_suit,args=(i,))
       t.start()
       import time
       time.sleep(2)


0
2
Mushishi
回复
慕函数4119770
我也用的是python3 呀,parame就是我们需要传递进去的参数名字。 class ParameTestCase(unittest.TestCase): def __init__(self,methodName='runTest',parame=None): 这里的这个parame。 你是不是用pycharm操作的,然后以unittest方式运行的,你用cmd去运行看一下。
2020-06-30
共2条回复

Python主讲移动端自动化测试框架Appium

APP自动化基础知识、po模型、关键字模型、服务自动化、持续集成

1508 学习 · 1333 问题

查看课程