34、Selenium + Python 实现 UI 自动化测试-正片6
来源:互联网 发布:sas软件有多大 编辑:程序博客网 时间:2024/05/21 17:05
某一天,测试地址变了。或者某一天邮件发送和接收人地址变了,怎么办?我们需要去login.py文件中修改url地址;我们需要去sendmail.py文件中修改邮件发送和接收人地址。去不同文件修改不同变量值,对于不熟悉你框架的人来说是困难的,对于我们自己来说也是不方便的。
今天我们引入配置文件,将这些易发生变化的部分,放到配置文件里,做统一管理。
一、我们在框架目录下,新建config文件夹,用来存储项目配置文件。
1、新建文件config.yaml,内容如下:
上面使用yaml 作为配置文件格式,后面我们再介绍其他格式的使用方法。# url 配置url: http://localhost:81/redmine/login# mail 相关配置host: smtp.163.comsender: xxxx@163.compasswd: xxxxxxxreceiver: yyy@qq.comsubject: 测试主题,按需修改contents: 邮件内容,按需修改
注意,冒号后面必须有一个空格,冒号前面可以没有空格;没有双引号或单引号。
#为注释符
2、接下来我们需要写一个函数或类,来读取yaml文件。
import yamlimport osdef read_yaml(info): base_path = os.path.dirname(os.path.abspath(__file__)) conf_path = base_path + '\..\config\config.yaml' with open(conf_path,'r',encoding='utf-8') as f: return yaml.load(f).get(info)if __name__ == '__main__': url = read_yaml('url') print(url) host = read_yaml('host') print(host)
3、修改test_000_login.py、login.py 和 sendmail.py
以sendmail.py为例:
import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom first.run import reportdirfrom first.utils import readyamldef sendmail(): host = readyaml.read_yaml('host') sender = readyaml.read_yaml('sender') #发送方邮件地址 passwd = readyaml.read_yaml('passwd') #发送方密码 receiver = readyaml.read_yaml('receiver') #接收报告方邮件地址 msg = MIMEMultipart() msg['from'] = sender msg['to'] = receiver msg['subject'] = readyaml.read_yaml('subject') msg.attach(MIMEText(readyaml.read_yaml('contents'))) att1 = MIMEText(open(reportdir, 'rb').read(), 'base64', 'utf-8') att1["Content-Type"] = 'application/octet-stream' # 这里的filename可以任意写,写什么名字,邮件中显示什么名字 att1["Content-Disposition"] = 'attachment; filename="report.html"' msg.attach(att1) try: smtpobj = smtplib.SMTP(host, port=25) smtpobj.login(sender, passwd) smtpobj.sendmail(sender, receiver, msg.as_string()) smtpobj.quit() print('send success') except: print('send err')if __name__ == '__main__': sendmail()
然后试运行 run.py,成功。
这个时候尝试修改下配置文件中的邮件主题和邮件内容,再次运行,看收到的新邮件主题和内容是否变化。
好,简单总结一下:
1、为了使程序更易读,我们将代码和配置相分离,单独保存配置文件,本文引入 yaml 格式作为配置文件
2、你也可以使用ini、json、cvs、 properties等格式。(后面我们也会一一讲解)
阅读全文
0 0
- 34、Selenium + Python 实现 UI 自动化测试-正片6
- 29、Selenium + Python 实现 UI 自动化测试-正片1
- 30、Selenium + Python 实现 UI 自动化测试-正片2
- 31、Selenium + Python 实现 UI 自动化测试-正片3
- 32、Selenium + Python 实现 UI 自动化测试-正片4
- 33、Selenium + Python 实现 UI 自动化测试-正片5
- 35、Selenium + Python 实现 UI 自动化测试-正片7
- 6、Selenium + Python 实现 UI 自动化测试-鼠标操作
- 1、Selenium + Python 实现 UI 自动化测试-环境搭建
- 3、Selenium + Python 实现 UI 自动化测试-元素定位
- 4、Selenium + Python 实现 UI 自动化测试-定位元素吗?
- 7、Selenium + Python 实现 UI 自动化测试-键盘操作
- 8、Selenium + Python 实现 UI 自动化测试-操作浏览器标签
- 9、Selenium + Python 实现 UI 自动化测试-操作浏览器窗口
- 10、Selenium + Python 实现 UI 自动化测试-操作输入框
- 12、Selenium + Python 实现 UI 自动化测试-操作下拉列表
- 13、Selenium + Python 实现 UI 自动化测试-操作表格
- 15、Selenium + Python 实现 UI 自动化测试-操作JavaScript弹窗
- 证书相关
- 程序员们骨子里并不善于表达自己,不辞辛劳而又默默无,凡参与者均可获得电话卡一张!
- ES6学习笔记
- 算法爱好者——从指定范围中寻找幸运数 ?待解决
- vim常用命令之多行注释和多行删除
- 34、Selenium + Python 实现 UI 自动化测试-正片6
- opencv学习实例(一)---camshift 色块追踪(详细注释)
- Recycleview 的CheckBox的复用和全选
- centos7安装jdk1.8
- IP地址和long互转
- 20171023-管理自己
- SpringBoot配置属性之其他
- C# 直接创建一个DataTable,并为之添加数据(自定义DataTable)
- Linux shell编程学习笔记(七) 文本编辑