在接口测试的过程中,需要将响应中的数据与数据库中的数据,进行断言,所以单独写了MySQL数据库连接模块。目前根据项目需求,目前实现了查询一条或多条数据,插入数据的功能。
具体实现分2个部分:
- 采用
YAML
的形式描述数据库配置 - 基于
pymysql
模块实现数据库的连接、数据查询和数据插入
继续阅读“MySQL数据库连接的Python脚本”
唯一的缺点就是太笨了
在接口测试的过程中,需要将响应中的数据与数据库中的数据,进行断言,所以单独写了MySQL数据库连接模块。目前根据项目需求,目前实现了查询一条或多条数据,插入数据的功能。
具体实现分2个部分:
YAML
的形式描述数据库配置pymysql
模块实现数据库的连接、数据查询和数据插入最近学习了Moneky测试;试着用Python写了执行Monkey测试的脚本,下载地址androidMonkeyTest。Monkey测试的基本概念和用法,这里就不再详细叙述了。网上已经有很多这方面的资料,比如JinZhu的Monkey 测试基本操作介绍。
With语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后关闭,线程中锁的获取和释放等。
Python标准库自带日志模块。python程序的日志记录可直接调用标准库的日志模块。
日志的严重等级 严重等级为NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL, 严重程度依次递增。
1 2 3 4 5 6 7 |
CRITICAL: 50 ERROR: 40 WARNING: 30 INFO: 20 DEBUG: 10 NOTSET: 0 |
上个星期,主要写了收入相关的接口测试;统计收入的过程中,需要用到MongoDB的聚合查询;目前做个简单的总结:
聚合操作处理数据记录,并返回计算值;MongoDB提供了3种方法执行聚合:the aggregation pipeline, the map-reduce function, 和单一目的的聚合方法(db.collection.count()和db.collection.distinct())。
在进行接口自动化测试过程中,一种断言的思路就是查询数据库的值与接口的返回值进行比对;由于自己基本知识不扎实,在对mongdb进行find查询时,还是折腾了两三天时间,问题解决之后,在此做一个总结。
开发环境:
最近,由于Apple的ATS,APP的运行环境切换到https了。刚好,我自己在做登录的接口测试,之前框架中实现的http post请求不可用了。
目前入职的公司没有进行接口测试自动化;本来,自己也是个菜鸟,所以开始自己摸索着进行接口自动化测试;
其实,我一开始完全不懂什么互联网的接口测试,也乱七八糟地看了些资料;也看了别人的接口自动化测试框架;具体的实现也是模模糊糊,之前为做过互联网开发。最后,我发现了授客的《Python 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]》;我刚好对python算是了解,实现框架看起来也不是很复杂;加了授课的QQ群,得到资料之后,开始照葫芦画瓢了。
作为练习python和tornado的一个小项目,要求输入网址,输出该网址的二维码
1. 环境准备,见python3+Tornado4.3
2. 安装纯python的二维码生成器模块qrcode,见官网最新qrcode 5.2.2
3. 编码实现:
第一步,简单的hello.html页面,允许输入网址并提交。
1 2 3 4 5 6 7 8 9 |
<html> <head><title>{{title}}</title></head> <body> <form name="input" action="html_form_action" method="get"> URL: <input type="text" name="URL" /> <input type="submit" value="Submit" /> </form> </body> </html> |
第二步,简单的img.html页面,呈现生成的二维码
1 2 3 4 5 6 |
<html> <head><title>{{title}}</title></head> <body> <img src = {{imgName}} /> </body> </html> |
第三步,功能实现部分,得到输入的网址,生成二维码,并输出到页面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import tornado.ioloop import tornado.web import qrcode class MainHandler(tornado.web.RequestHandler): def get(self): self.render("hello.html", title = "hellMickey") class FormHandler(tornado.web.RequestHandler): def get(self): url = self.get_argument("URL") imgQR = qrcode.QRCode(version = 1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size = 10, border = 4,) imgQR.add_data(url) imgQR.make(fit=True) img = imgQR.make_image() img.save(url + '.png') self.render("img.html", title = "QRCode", imgName = url + '.png') class ImgHandler(tornado.web.RequestHandler): def get(self, path): fileName = path + ".png" try: with open(fileName, 'rb') as f: data = f.read() self.write(data) self.finish() except IOError: self.write("Error") def make_app(): return tornado.web.Application([ (r"/", MainHandler), (r"/html_form_action", FormHandler),(r"/(.*).png", ImgHandler), ]) if __name__ == "__main__": app = make_app() app.listen(8888) tornado.ioloop.IOLoop.current().start() |
面临找工作的压力和打击下,也有某人的支持,决定增加自己的python的实践能力,从写一个自己的简单网站开始。
当然,任何的开发工作,都要从搭建开发环境开始。
我的电脑环境是在Win10的系统安装虚拟机,在虚拟机里安装了Ubuntu14.04。
Ubuntu14.04已经自带了python2.7和python3。我是参照网上的资料安装了python3.4.
python3.4的安装比较简单,网上也有很多资料。我这次搭建环境花了不少时间,主要是安装Tornado4.3上。这里重点介绍安装Tornado4.3遇到的问题。
按照官网http://www.tornadoweb.org/en/stable/上介绍步骤,一直提示:
按照提示要求安装python-dev时,一直提示要安装g++,gcc-base等等,就是依赖的文件要一个个地安装,最后的结果又是最后一个依赖的包安装不了。唉,这个问题折腾了很久。最终,发现是软件源有问题,换成国内的源就好了。使用命令sudo gedit /etc/apt/sources.list打开sources.list,并更新源,参考http://mirrors.163.com/.help/ubuntu.html:
tar xvzf backports_abc-0.4.tar.gz
python3 setup.py build
sudo python3 setup.py install
我一开始安装的是backports_abc-0.3.tar.gz。安装完成之后,运行python3 hello.py会有“Cannot import name ‘Generator’”的错误。后来发现要安装backports_abc-0.4.tar.gz,问题就全部解决了。
另外,如果使用python2.7可能会遇到如下错误:
按照上述安装singledispatch-3.4.0.3.tar.gz。同时也需要安装backports_abc-0.4.tar.gz.
最后的最后,终于看到Hello, world!!这里特别感谢懒猪陪我熬夜,帮我解决问题。以后遇到问题,自己也要耐心地搜索答案。
因为之前没有Web开发的经验,也没有接触过Tornado架构。也在网上简单翻看了Tornado的简介。这里也分享一下。python tornado的学习资料