python selenium 测试报告_第一个Python&Selenium项目实战-添加发送HTML测试报告邮件

1 #! user/bin/python

2 '''

3 代码说明:麦子学院登录模块自动化测试用例脚本

4 编写日期:

5 设置者:linux超

6 '''

7

8 import time

9 from selenium import webdriver

10 from webinfo import webinfo

11 from userinfo import userinfo

12 from log_fiile import login_log

13 from send_email import send_mail_init_info,read_SendToUserinfo_file

14

15 #account = '281754043@qq.com'

16 def open_web():

17     '''

18     :return:web句柄

19     '''

20     driver = webdriver.Firefox()

21     driver.maximize_window()

22     return driver

23

24 def load_url(driver,ele_dict):

25     '''

26     :param driver: web主页面句柄

27     :param ele_dict: web信息字典(从文件中读取)

28     :return: 无

29     '''

30     driver.get(ele_dict['Turl'])

31     time.sleep(5)

32

33 def find_element(driver,ele_dict):

34     '''

35     :param driver: web句柄

36     :param ele_dict: web信息字典(从文件中读取)

37     :return: 返回找到的元素

38     '''

39     driver.find_element_by_class_name(ele_dict['image_id']).click()

40     if 'text_id' in ele_dict:

41         driver.find_element_by_link_text('登录').click()

42

43     user_id = driver.find_element_by_id(ele_dict['userid'])

44     pwd_id = driver.find_element_by_id(ele_dict['pwdid'])

45     login_id = driver.find_element_by_id(ele_dict['loginid'])

46     return user_id,pwd_id,login_id

47

48 def send_val(ele_tuple,arg):

49     '''

50     :param ele_tuple: web元素

51     :param arg: 可变长参数,接收用户名和密码

52     :return: 无

53     '''

54     # input userinfo

55     listkey = ['uname','pwd']

56     i = 0

57     for key in listkey:

58         ele_tuple[i].send_keys('')

59         ele_tuple[i].clear()

60         ele_tuple[i].send_keys(arg[key])

61         i+=1

62     ele_tuple[2].click()

63 #   判断登录是否成功,并写入测试报告

64 def check_login(driver,ele_dict,log,userlist):

65     '''

66     :param driver: web句柄

67     :param ele_dict: 读取到的元素信息(文件中读到的)

68     :param log: login_log对象

69     :param userlist: 用户信息(文件中读取)

70     :return: False or Ture

71     '''

72     result = False

73     time.sleep(3)

74     try:

75         err = driver.find_element_by_id(ele_dict['error'])

76         driver.save_screenshot(err.text+'.png')

77         log.log_write('账号:%s 密码:%s 提示信息:%s:failed\n' %(userlist['uname'],userlist['pwd'],err.text))

78

79         print('username or password error')

80     except:

81         print('login success!')

82         log.log_write('账号:%s 密码:%s :passed\n'%(userlist['uname'],userlist['pwd']))

83         #login_out(driver,ele_dict)

84         return True

85     return result

86 #   登出

87 def login_out(driver,ele_dict):

88     time.sleep(5)

89     driver.find_element_by_class_name(ele_dict['logout']).click()

90 '''

91 def screen_shot(err):

92     i = 0

93     save_path = r'D:\pythondcode\capture'

94     capturename = '\\'+str(i)+'.png'

95     wholepath = save_path+capturename

96     if Path(save_path).is_dir():

97         pass

98     else:

99         Path(save_path).mkdir()

100     while Path(save_path).exists():

101         i+=1

102         capturename = '\\'+str(i)+'.png'

103         wholepath = save_path + capturename

104     err.screenshot(wholepath)

105 '''

106

107 def login_test():

108     log = login_log()

109     msg = read_SendToUserinfo_file(r'D:\pythoncode\login_test\SendToUserinfo.txt')

110     sendmail = send_mail_init_info('smtp.qq.com','281754043@qq.com','gifhhsbgqyovbhhc','281754043@qq.com',msg)

111     #ele_dict = {'url': 'http://www.maiziedu.com/', 'text_id': '登录', 'user_id': 'id_account_l', 'pwd_id': 'id_password_l'

112         #, 'login_id': 'login_btn','image_id':'close-windows-btn7','error_id':'login-form-tips'}

113     ele_dict = webinfo(r'D:\pythoncode\webinfo.txt')

114     #user_list=[{'uname':account,'pwd':pwd}]

115     user_list = userinfo(r'D:\pythoncode\userinfo.txt')

116     driver = open_web()

117     # load url

118     load_url(driver,ele_dict)

119     #find element

120     ele_tuple = find_element(driver,ele_dict)

121     # send values

122     ftitle = time.strftime('%Y-%m-%d', time.gmtime())

123     log.log_write('\t\t\t%s登录系统测试报告\n' % (ftitle))

124     #   循环用户测试数据

125     for userlist in user_list:

126         send_val(ele_tuple,userlist)

127         # check login success or failed

128         result = check_login(driver,ele_dict,log,userlist)

129         if result:

130             login_out(driver,ele_dict)

131             time.sleep(3)

132             ele_tuple = find_element(driver,ele_dict)

133

134     time.sleep(3)

135     log.log_close() #   关闭log文件

136     # 发送报告到指定的邮箱

137     sendmail.send_email(log.filename)

138     driver.quit()

139 if __name__ == '__main__':

140     login_test()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值