class orderProcess(unittest.TestCase): def setUp(self): #self.log = Log.Log("OrderList") self.log = MyLog("orderProcess").get_log() #self.driver = webdriver.Firefox() self.log.info("开始测试订单流程") #self.driver.implicitly_wait(30) # 隐性等待时间为30秒 #self.base_url = "https://www.baidu.com" def test_orderStatusChange(self): """测试获取订单状态变化""" self.log.info("开始测试获取订单列表信息") self.log.info("测试成功") def test_OrderFullProcess(self): """测试订单总流程""" self.log.info("开始测试订单总流程") self.log.info("测试成功")
class supplierInfo(unittest.TestCase): def setUp(self): #self.log = Log.Log("supplierInfo") self.log = MyLog("supplierInfo").get_log() #self.driver = webdriver.Firefox() self.log.info("开始测试获取供应商信息") #self.driver.implicitly_wait(30) # 隐性等待时间为30秒 #elf.base_url = "https://www.baidu.com" def test_getSupplierInfo(self): """获取供应商信息""" self.log.info("开始测试获取供应商信息") self.log.info("测试成功") def test_DeleteSupplierInfo(self): """删除供应商信息""" self.log.info("开始测试删除供应商信息") self.log.info("测试成功")
class MemberLevelInfo(unittest.TestCase): def setUp(self): #self.log = Log.Log("MemberLevelInfo") self.log = MyLog("MemberLevelInfo").get_log() #self.driver = webdriver.Firefox() self.log.info("开始测试获取会员等级信息") #self.driver.implicitly_wait(30) # 隐性等待时间为30秒 #self.base_url = "https://www.baidu.com" def test_getMemberLevelInfo(self): time.sleep(3) self.log.info("开始测试获取会有等级信息") self.log.info("测试成功") def test_changeMemberLevelInfo(self): self.log.info("开始测试更改会有等级信息") self.log.info("测试成功")
class productCategory(unittest.TestCase): def setUp(self): #self.log = Log.Log("productCategory") self.log = MyLog("productCategory").get_log() #self.driver = webdriver.Firefox() self.log.info("开始测试获取商品类型信息") #self.driver.implicitly_wait(30) # 隐性等待时间为30秒 #self.base_url = "https://www.baidu.com" def test_getProductCategory(self): """获取商品种类""" self.log.info("开始测试获取商品种类信息") self.log.info("测试成功") def test_productCategoryUpdate(self): """更新商品种类""" self.log.info("开始测试更新商品种类信息") self.log.info("测试成功")
class productInfo(unittest.TestCase): def setUp(self): #self.log = Log("productInfo") self.log = MyLog("productCategory").get_log() #self.driver = webdriver.Firefox() self.log.info("开始测试获取商品信息") #self.driver.implicitly_wait(30) # 隐性等待时间为30秒 #self.base_url = "https://www.baidu.com" def test_getProductInfo(self): """测试获取商品信息""" self.log.info("开始测试获取商品信息") self.log.info("测试成功") def test_getSubProductInfo(self): """测试获取商品子商品""" self.log.info("开始测试获取商品子商品信息") self.log.info("测试成功")
class memberInfo(unittest.TestCase): def setUp(self): #self.log = Log.Log("memberInfo") self.log = MyLog("memberInfo").get_log() #self.driver = webdriver.Firefox() self.log.info("开始测试获取会员信息") #self.driver.implicitly_wait(30) # 隐性等待时间为30秒 #self.base_url = "https://www.baidu.com" def test_memberInfo(self): """测试获取成员信息""" self.log.info("开始测试获取会员信息") self.log.info("测试成功") def test_memberInfoUpdate(self): """测试更新成员信息""" self.log.info("开始测试更新会员信息") self.log.info("测试成功") def test_DeletememberInfo(self): """测试删除成员信息""" self.log.info("开始测试删除会员信息") self.log.info("测试成功") def test_AddmemberInfo(self): """测试添加成员信息""" self.log.info("开始测试添加会员信息") self.log.info("测试成功")
class c_login(unittest.TestCase): def setUp(self): #self.log = Log("login") self.log = MyLog("c_login").get_log() #self.log = Log.Log("memberInfo").logger self.log.info("开始测试登录") def test_loginSuccess(self): """测试登录成功""" time.sleep(2) # self.driver = webdriver.Ie() # self.driver.implicitly_wait(30) # 隐性等待时间为30秒 # self.driver.get("https://www.baidu.com/") # self.driver.close() self.log.info("开始测试登录成功") self.log.info("测试成功") def test_loginNull(self): """测试登录空测试""" self.log.info("开始测试登录空测试") self.log.info("测试成功") def test_loginNameError(self): """测试登录名错误""" self.log.info("开始测试登录名错误") self.log.info("测试成功") def test_loginPWDError(self): """测试登录密码错误""" self.log.info("开始测试登录密码错误") self.log.info("测试成功") def tearDown(self): self.log.info("测试结束")
class orderList(unittest.TestCase): def setUp(self): #self.log = Log.Log("OrderList") self.log = MyLog("orderList").get_log() #self.driver = webdriver.Firefox() self.log.info("开始测试获取订单列表信息") #self.driver.implicitly_wait(30) # 隐性等待时间为30秒 #self.base_url = "https://www.baidu.com" def test_getOrderList(self): """测试获取订单列表信息""" self.log.info("开始测试获取订单列表信息") self.log.info("测试成功") def test_OrderListUpdate(self): """测试更新订单列表信息""" self.log.info("开始测试更新订单列表信息") self.log.info("测试成功") def test_OrderStatus(self): """测试获取订单列表状态信息""" self.log.info("开始测试获取订单列表状态信息") self.log.info("测试成功")
class WindowsConnect(Connect): def __init__( self, windows_name: str, hwnd: int = 0, ): self.windows_name = windows_name if hwnd == 0: self.hwnd = win32gui.FindWindow(0, self.windows_name) else: self.hwnd = hwnd self.logger = MyLog('windows').get_logger() def connect(self): if self.hwnd == 0: self.logger.error('连接失败!请检查~ name:{}'.format(self.windows_name)) return None else: self.logger.info('连接成功!hwnd:{} name:{}'.format( self.hwnd, self.windows_name)) return self.hwnd @log def activate_window(self): user32 = ctypes.WinDLL('user32.dll') user32.SwitchToThisWindow(self.hwnd, True) def execute_command(self, com): ex = subprocess.Popen(com, stdout=subprocess.PIPE, shell=True) self.logger.debug('执行命令: {}'.format(com)) out, err = ex.communicate() status = ex.wait() self.logger.debug('命令结果: {}'.format(out.decode().strip())) self.logger.debug('状态: {}'.format(status)) return out.decode(), err, status def click_bg(self, pos, pos_end=None): """ 后台模拟点击 :param pos: 要点击的坐标 :param pos_end: 若不为空,则点击的是pos~pos_end之间的随机位置 :return: 无 """ pos_rand = proc_rand_pos(pos, pos_end) win32gui.SendMessage(self.hwnd, win32con.WM_MOUSEMOVE, 0, win32api.MAKELONG(*pos_rand)) win32gui.SendMessage(self.hwnd, win32con.WM_LBUTTONDOWN, 0, win32api.MAKELONG(*pos_rand)) time.sleep(random.randint(20, 80) / 1000) win32gui.SendMessage(self.hwnd, win32con.WM_LBUTTONUP, 0, win32api.MAKELONG(*pos_rand)) @log def drag_bg(self, pos1, pos2, cost_time=None): """ 后台拖拽 :param pos1: (x,y) 起点坐标 :param pos2: (x,y) 终点坐标 :param cost_time: 消耗时间 """ move_x = np.linspace(pos1[0], pos2[0], num=20, endpoint=True) move_y = np.linspace(pos1[1], pos2[1], num=20, endpoint=True) win32gui.SendMessage(self.hwnd, win32con.WM_LBUTTONDOWN, 0, win32api.MAKELONG(*pos1)) for i in range(20): x = int(round(move_x[i])) y = int(round(move_y[i])) win32gui.SendMessage(self.hwnd, win32con.WM_MOUSEMOVE, 0, win32api.MAKELONG(x, y)) t = 0.01 * random.random() time.sleep(t) cost_time -= t * 1000 if cost_time > 0: time.sleep(cost_time / 1000) win32gui.SendMessage(self.hwnd, win32con.WM_LBUTTONUP, 0, win32api.MAKELONG(*pos2))
def run(): logger = MyLog("开启日志线程记录").get_log() logpath = Log("获取日志路径").logPath reportName = logpath + "\/" + 'report.html' try: suit = set_case_suite() if suit is not None: logger.info("********TEST START********") with open(reportName, "w", encoding="UTF-8") as fp: fp.close() # with open(reportName,"wb") as fp: # runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='Test Report', verbosity=2, description='Test Description') # runner.run(suit) #rnn = TestRunner() rnn = TestRunner(suite=suit, filename="report.html", report_dir=logpath, title="testreport", tester="cjx", desc="test schemer report") rnn.run() #全部重跑,所有失败的用例都将重跑2次 #rnn.rerun_run(count=3, interval=2) else: logger.info("Have no case to test.") except Exception as ex: logger.error(str(ex)) finally: logger.info("*********TEST END*********") # send test report by email on_off = readConfig.ReadConfig().get_email("on_off") if int(on_off) == 0: configEmail.Email().send_email() elif int(on_off) == 1: logger.info("不发送邮件给开发") elif int(on_off) == 2: logger.info("不发送邮") else: logger.info("Unknow state.")
class register(unittest.TestCase): def setUp(self): #self.log = Log.Log("register") self.log = MyLog("memberInfo").get_log() #self.driver = webdriver.Firefox() self.log.info("开始测试注册") #self.driver.implicitly_wait(30) # 隐性等待时间为30秒 #self.base_url = "https://www.baidu.com" def test_registerNull(self): """注册空测试""" self.log.info("开始测试注册空测试") self.log.info("测试成功") def test_registerSuccess(self): """测试注册成功""" self.log.info("开始测试注册成功") self.log.info("测试成功") def test_registerUserNameError(self): """测试注册用户名错误""" self.log.info("开始测试注册用户名错误") self.log.info("测试成功") def test_registerPWDError(self): """测试注册密码不符合规则""" self.log.info("开始测试注册密码不符合规则") self.log.info("测试成功")