def __init__(self): '''从config.ini提取数据''' report_address = ReadConfig.get_config("DATABASE", "report_address") self.project_name = ReadConfig.get_config('TABLEDATA', 'project_name') self.version = ReadConfig.get_config('TABLEDATA', 'version') self.scripting_language = ReadConfig.get_config( 'TABLEDATA', 'Scripting_language') self.internet = ReadConfig.get_config('TABLEDATA', 'internet') self.now = time.strftime("%Y-%m-%d-%H-%M-%S ", time.localtime(time.time())) self.repor_tddress = report_address + self.now + 'report.xlsx' self.workbook = xlsxwriter.Workbook(self.repor_tddress) # 生成的报告的路径 self.worksheet = self.workbook.add_worksheet("测试总况") self.worksheet2 = self.workbook.add_worksheet("测试详情")
def __init__(self): '''从config.ini读取数据''' # 获取项目绝对路径 report_address = os.path.abspath('../testReport/report/') + '\\' # report_address=ReadConfig.get_config("DATABASE","report_address") self.project_name = ReadConfig.get_config("TABLEDATA", "project_name") self.version = ReadConfig.get_config("TABLEDATA", "version") self.scripting_language = ReadConfig.get_config( "TABLEDATA", "scripting_language") self.internet = ReadConfig.get_config("TABLEDATA", "internet") self.now = time.strftime("%Y-%m-%d-%H-%M-%S ", time.localtime(time.time())) self.report = report_address + self.now + 'report.xlsx' self.workbook = xlsxwriter.Workbook(self.report) #生成测试报告 self.worksheet = self.workbook.add_worksheet("测试总况") self.worksheet2 = self.workbook.add_worksheet("测试详情")
def __init__(self): '''从配置文件中读取收发邮箱信息''' self.mail_host = ReadConfig.get_config("EMAIL", "mail_host") self.mail_user = ReadConfig.get_config("EMAIL", "mail_user") self.mail_pass = ReadConfig.get_config("EMAIL", "mail_pass") self.mail_port = ReadConfig.get_config("EMAIL", "mail_port") self.receiver=ReadConfig.get_config("EMAIL", "receiver") self.subject=ReadConfig.get_config("EMAIL","subject") self.content=ReadConfig.get_config("EMAIL","content") self.on_off=ReadConfig.get_config("EMAIL","on_off")
def __init__(self): ''' :param filePath: excel路径 :param sheel: 索引 ''' read = ReadConfig() self.filePath = read.get_config('EXCEL', 'filePath') self.sheel = int(read.get_config('EXCEL', 'sheel')) # 打开excel文件读取数据,创建文件对象赋值给workile self.workfile = xlrd.open_workbook(self.filePath) # 获取一个工作表(sheet)创建一个表格对象赋值给变量data self.data = self.workfile.sheets()[self.sheel] # 获取第一行作为key值 self.keys = self.data.row_values(0) # print(self.keys) # 获取总行数 self.rowNum = self.data.nrows # print(self.rowNum) # 获取总列数 self.colNum = self.data.ncols
def __init__(self): '''打开工作表''' # 从配置文件获取测试用例地址 data_address = ReadConfig.get_config("DATABASE", "data_address") # data_address=os.path.abspath('../data/buyerdata1.xlsx') # 从excel提取测试用例信息 workbook = xlrd.open_workbook(data_address) self.table = workbook.sheets()[0] # 获取第一行作为key值 self.keys = self.table.row_values(0) # 获取总行数 self.RowNum = self.table.nrows # 获取总列数 self.colNum = self.table.ncols
def __init__(self): # 从config.ini中提取数据 self.login_path = ReadConfig.get_config("DATABASE", "login_path") self.hostname = ReadConfig.get_config("HTTP", "host") shop_id = ReadConfig.get_config("DATABASE", "shop_id") mobile_no = ReadConfig.get_config("DATABASE", "mobile_no") openid = ReadConfig.get_config("DATABASE", "openid") union_id = ReadConfig.get_config("DATABASE", "union_id") self.code = ReadConfig.get_config("DATABASE", "code") self.data = { "shop_id": shop_id, "mobile_no": mobile_no, "openid": openid, "union_id": union_id }
import json import requests from readConfig import ReadConfig from log import Log ReadConfig = ReadConfig() log = Log() session = requests.Session() host = ReadConfig.get_config("HTTP", "host") def userLogin(): url = '/api/v1/user/auth/login/create' params = { 'remember': '1', 'username': '******', 'password': 123456 } param_str = json.dumps(params) re = session.post(host + url, data=params) log.info("用户登录成功!") # print(re.json()) # result = requests.get('https://m.test.wemartx.com/wm/api/v1/user/auth/login/create') def shopLogin(): # session = requests.session() url = '/api/v1/channel/shop/auth/login/create' params = {'shop_id': 7} param_str = json.dumps(params) re = session.post(host + url, data=params)
class Action(object): def __init__(self, driver): self.config = ReadConfig() self.driver = driver self.baseurl = self.config.get_config('HTTP', 'host') self.log = Log() def _open(self): self.driver.get(self.baseurl) self.driver.maximize_window() ''' 定位元素,参数locator为元祖类型 locator = ('id','xxx') driver.find_element(locator) ''' # def find_element(self,timeout=20,*loc): # try: # WebDriverWait(self.driver,timeout).until(lambda driver:driver.find_element(*loc).is_displayed()) # return self.driver.find_element(*loc) # except: # print("%s 页面中未能找到 %s 元素" % (self,loc)) def find_element(self, loc, timeout=20): try: WebDriverWait(self.driver, timeout, 0.2).until(EC.presence_of_element_located(loc)) return self.driver.find_element(loc[0], loc[1]) except: self.log.debug('元素%s未找到!' % (loc[1])) def find_elements(self, loc, timeout=20): try: WebDriverWait(self.driver, timeout, 0.2).until(EC.presence_of_element_located(loc)) return self.driver.find_elements(loc[0], loc[1]) except: self.log.debug('元素%s未找到!' % (loc[1])) def click(self, loc, timeout=30): ele = self.find_element(loc, timeout) try: ele.click() except Exception as e: print(e) self.js_click(ele) # except: # print('元素%s点击失败! ' % (loc[1])) def send_keys(self, loc, vaule, time=20, clear_first=True, enter_end=False, click_first=False): try: ele = self.find_element(loc, time) if click_first: self.js_click(ele) if clear_first: # self.sleep(5) # ele.clear() # self.sleep(5) ele.send_keys(Keys.CONTROL + 'a') ele.send_keys(Keys.BACKSPACE) ele.send_keys(vaule) if enter_end: ele.send_keys(Keys.ENTER) except AttributeError: self.log.debug('元素%s输入文本失败!' % (loc[1])) def get_text(self, loc, time=20): try: ele = self.find_element(loc, time) return ele.text except: self.log.debug('元素%s未获取到文本!' % (loc[1])) def get_pagesource(self): return self.driver.page_source def is_element_exit(self, loc, timeout=20): '''判断元素是否存在''' try: WebDriverWait(self.driver, timeout, 0.2).until(EC.presence_of_element_located(loc)) return True except: return False def highlight(self, element): '''高亮元素''' self.driver.execute_script( "arguments[0].setAttribute('style', arguments[1]);", element, "border: 2px solid red;") time.sleep(3) def js_click(self, ele): '''js注入点击事件''' # ele = self.find_element(loc) # element = self.driver.find_element(loc) self.driver.execute_script("arguments[0].click();", ele) # def js_clear(self,ele): # # ele.sendKeys(Keys.chord(Keys.CONTROL, "a")) # # ele.sendKeys(Keys.DELETE) # ele.send_keys(Keys.CONTROL, "a") # ele.sendKeys(Keys.DELETE) def mouse_hover(self, element): '''鼠标悬停''' ActionChains(self.driver).move_to_element(element) time.sleep(3) def mouse_double_click(self, element): '''鼠标双击''' ActionChains(self.driver).double_click(element) time.sleep(3) def mouse_release(self): '''释放鼠标''' ActionChains(self.driver).release() def scroll_into_view(self, loc): '''滚动直到元素可见''' ele = self.driver.find_element(loc[0], loc[1]) self.driver.execute_script("arguments[0].scrollIntoView();", ele) def get_current_time(self): '''获取当前时间''' curTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) return curTime def move_time(self, startTime, move_unit, move_value): '''日期移动''' re_time = '' move_int = int(move_value) # start_time = datetime.datetime.now() start_time = datetime.datetime.strptime(startTime, "%Y-%m-%d %H:%M:%S") if move_unit == 'second': re_time = (start_time + datetime.timedelta(seconds=move_int) ).strftime("%Y-%m-%d %H:%M:%S") elif move_unit == 'minate': re_time = (start_time + datetime.timedelta(minutes=move_int) ).strftime("%Y-%m-%d %H:%M:%S") elif move_unit == 'hour': re_time = (start_time + datetime.timedelta(hours=move_int) ).strftime("%Y-%m-%d %H:%M:%S") elif move_unit == 'day': re_time = (start_time + datetime.timedelta(days=move_int) ).strftime("%Y-%m-%d %H:%M:%S") elif move_unit == 'week': re_time = (start_time + datetime.timedelta(weeks=move_int) ).strftime("%Y-%m-%d %H:%M:%S") return re_time def sleep(self, s): time.sleep(s)
def getBuyertoken(self): '''获取登录的token''' token = ReadConfig.get_config("DATABASE", "token") print(token) return token