最近在搞ios的APP测试;一开始APP使用的是http协议,上周更新为https协议;作为测试,抓数据包就成了问题,目前在mac笔记本上,使用的抓包工具上Charles.
通过查阅资料,终于找到了https 下Charles抓包的靠谱材料了,汇总如下:
唯一的缺点就是太笨了
最近在搞ios的APP测试;一开始APP使用的是http协议,上周更新为https协议;作为测试,抓数据包就成了问题,目前在mac笔记本上,使用的抓包工具上Charles.
通过查阅资料,终于找到了https 下Charles抓包的靠谱材料了,汇总如下:
运行monkey过程中,总是出现手机和pc断开连接的情况,终于发现了一种方法,可以脱离PC,独立运行monkey和记录logcat和monkey日志,具体步骤记录如下:
目前入职的公司没有进行接口测试自动化;本来,自己也是个菜鸟,所以开始自己摸索着进行接口自动化测试;
其实,我一开始完全不懂什么互联网的接口测试,也乱七八糟地看了些资料;也看了别人的接口自动化测试框架;具体的实现也是模模糊糊,之前为做过互联网开发。最后,我发现了授客的《Python 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]》;我刚好对python算是了解,实现框架看起来也不是很复杂;加了授课的QQ群,得到资料之后,开始照葫芦画瓢了。
最近,在学习折腾APP接口自动化测试,通过一个QQ好友得到一个自动化测试框架;认为他做的不错。由于他的用例管理是使用testlink,所以,就开始安装testlink。
测试环境:Mac OS 10.11.6 + 华为荣耀
1. 自我介绍
2. 一道C语言编程题:
利用3个函数实现linux命令rm -rf path,也就是实现一个函数void remove(path)
bool isFile(path) //判断给定的路径是不是文件
string[] getChildpath(path) //获取该路径下所有的子目录或者子文件
bool delete(path) //删除给定的路径下的文件或空文件夹
3. 一道逻辑题:
一个六面体,每个面上会有一个数字(0-9),需要几个六面体可以表示出每月的日期(01-31),且每个六面体上标识的数字是什么?
4. python中闭包的概念
5. 你做过Web测试工作吗?你觉得测试与开发工作有什么不同?
6. 从开发的角度,或者测试的角度如何保证产品的质量
7. 开发过程中如何进行自验证工作?
8. 对未来的规划,做过哪些准备?
9. 针对一项测试工作,应该做哪些事情?
10. 作为一个测试人员,与测试人员意见不一致的情况时,如何处理?
11. 遇到一个偶现的bug,如何向开发重现,或者让开发解决问题?
12. 如何测试支付宝的转账功能?(测试点)
13. 你有什么想问的问题?
作为练习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() |
今天下午,想重新温习下SQL,就刷了下LeetCode上有关Database的简单题和中等题。
1. Employees Earning More Than Their Managers
1 2 3 |
SELECT a.Name FROM Employee a INNER JOIN Employee b ON a.ManagerId = b.Id WHERE a.Salary > b.Salary |
1 2 3 4 |
SELECT Email FROM Person GROUP BY Email HAVING COUNT(Email) > 1 |
1 2 |
SELECT FirstName, LastName, City, State FROM Person p LEFT JOIN Address a ON p.PersonId = a.PersonId |
1 2 3 4 |
SELECT Name AS Customers FROM Customers WHERE Id NOT IN (SELECT CustomerId FROM Orders) |
1 2 3 4 5 |
SELECT Name AS Customers FROM Customers WHERE NOT EXISTS (SELECT CustomerId FROM Orders WHERE Orders.CustomerId = Customers.Id) |
1 2 3 |
SELECT b.Id FROM Weather a RIGHT JOIN Weather b ON DATEDIFF(b.Date, a.Date) = 1 WHERE a.Temperature < b.Temperature |
1 2 3 |
SELECT b.Id FROM Weather a RIGHT JOIN Weather b ON TO_DAYS(b.Date) - TO_DAYS(a.Date) = 1 WHERE a.Temperature < b.Temperature |
1 2 3 |
SELECT b.Id FROM Weather a RIGHT JOIN Weather b ON DATE_SUB(a.Date, INTERVAL -1 DAY) = b.Date WHERE a.Temperature < b.Temperature |
1 2 3 4 5 6 |
SELECT IFNULL(( SELECT DISTINCT Salary AS SecondHighestSalary FROM Employee ORDER BY Salary DESC LIMIT 1, 1 ), NULL) |
1 2 3 4 5 6 |
SELECT ( SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1, 1 ) AS SecondHighestSalary |
1 2 3 4 5 6 |
SELECT ( SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET 1 ) AS SecondHighestSalary |
1 2 3 4 5 6 |
DELETE FROM Person WHERE Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id FROM Person GROUP BY Email ) t) |
1 2 3 4 |
SELECT DISTINCT l1.num FROM Logs l1 JOIN Logs l2 ON l1.id = l2.id - 1 JOIN Logs l3 ON l1.id = l3.id - 2 WHERE l1.num = l2.num AND l2.num = l3.num |
9. Rank Scores
1 2 3 4 5 6 7 |
SELECT Score, ( SELECT COUNT(DISTINCT Score) FROM Scores WHERE Score >= s.Score ) AS Rank FROM Scores s ORDER BY Score DESC |
1 2 3 4 5 6 7 8 |
SELECT D.Name AS Department, E.Name AS Employee, E.Salary FROM Employee E, (SELECT DepartmentId, MAX(Salary) AS max FROM Employee GROUP BY DepartmentId ) T, Department D WHERE E.DepartmentId = T.DepartmentId AND E.Salary = T.max AND E.DepartmentId = D.id |
1 2 3 4 5 6 7 8 |
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN DECLARE M INT; SET M = N-1; RETURN ( select IFNULL((select distinct Salary from Employee order by Salary DESC limit M, 1), null) ); END |
面临找工作的压力和打击下,也有某人的支持,决定增加自己的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的学习资料
这里搜集自己在学习python和Tornado过程中一些有用资料,持续更新中。。。
Tornad官网:http://www.tornadoweb.org/en/stable/
Demo:https://github.com/tornadoweb/tornado/tree/master/demos
源码: https://github.com/tornadoweb/tornado
现代魔法学院 python程序设计 http://www.nowamagic.net/academy/category/13
Python与Tornado http://www.nowamagic.net/academy/part/13/325
http://www.nowamagic.net/academy/detail/13321024