python2.7unittest接⼝⾃动化
注册码:
选择License server, 在License server address 中输⼊:jetlicense.nss.im/
如以上已过期,强烈推荐采⽤以下⽅法注册
pycharm注册码
采坑系列
1.pip 9.0.3死活安不上,命令各种百度⼀下午,各种报错,or下载国内镜像都不⾏。。。
Could not fetch URL : There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION]
tlsv1 alert protocol version (_ssl.c:590) - skipping
Could not find a version that satisfies the requirement virtualenv (from versions: )
No matching distribution found for virtualenv
sudo -i 切换到root⽤户
whoami  --root
exit  --logout
whoami  --qa
sudo -i: 为了频繁的执⾏某些只有超级⽤户才能执⾏的权限,⽽不⽤每次输⼊密码,可以使⽤该命令。提⽰输⼊密码时该密码为当前账户的密码。没有时间限制。执⾏该命令后提⽰符变为“#”⽽不是“$”。想退回普通账户时可以执⾏“exit”或“logout”
注:Python2.7需要⼿动安装pip 9.0.3,Python 3.x会提⽰安装,因为⽤的是Python2.7,如果安装 ,会报错。⾼版本适⽤3系列
最后下载的包(下载地址 )安装pip
cd /Users/qa/Desktop/QA/mac/python/pip-9.0.3
sudo python  install
➜ ~ pip -V
pip 9.0.3 from /Library/Python/2.7/site-packages/pip-9.0. (python 2.7)
参考博客
升级Python
python -m pip install -U pip
或者sudo pip install --upgrade pip
2.安装完pip 9.0.3,再安装MySQL-python(MySQLdb,下载安装包地址为 )
1>安装之前需要在本地安装mysql,发现本地mysql启动时报错Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'。解决办法:sudo chown -R  _mysql:wheel  /usr/local/mysql/data  再启动mysql,查看是否起来ps -ef|grep mysql
2>修改MySQL-python的配置路径,sudo vim /Users/qa/Desktop/QA/mac/python/MySQL-python-1.2.5/
mysql_config.path = "/usr/local/mysql/bin/mysql_config"
修改之后安装MySQLdb
cd /Users/qa/Desktop/QA/mac/python/MySQL-python-1.2.5
sudo python  install
就好了
3.安装redis以及其他模块--这⾥很顺利,没有报错
4.mac下testStart.py需要加
#对caseToRun需要解析的域名换⾏
oneList = place('\r', '')
否则在字典中⽆法查到case对应的路径
不加\r 跑完的log如下
2018 Apr 15 Sun,15:18:56 [INFO] 开始执⾏测试⽤例...
shark项⽬访问域名:qa.XX.
server_new项⽬访问域名:betassapinew.XX.
测试报告路径:/Users/qa/Desktop/QA/report/testResultNone.html
2018 Apr 15 Sun,15:18:56 [INFO] 测试⽤例已执⾏完成,测试报告路径:/Users/qa/Desktop/QA/report/testResultNone.html
Windows下解析配置⽂件没有加\r,mac不加\r识别不了
5.mac下Handlers>dbHandler.py数据库查询出来的中⽂乱码,id后⾯多了个L,做了优化如下
1>导包
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import json
2>class DBHandler()下
< = t(host='127.0.0.1', # 此处必须是是127.0.0.1
port=self.server.local_bind_port, user=user, passwd=pswd, db=db)  增加  charset=charset
python新手代码userid
< = t(host='127.0.0.1', # 此处必须是是127.0.0.1
port=self.server.local_bind_port, user=user, passwd=pswd, db=db,charset=charset)
3>在findDB、insertDB、updateDB、delDB⽅法的findResult = self.cursor.fetchall()后⾯增加代码  findResult = str(json.dumps(findResult, ensure_ascii=False)) --
这是因为json.dumps 序列化时对中⽂默认使⽤的ascii编码,想输出真正的中⽂需要指定ensure_ascii=False
未优化之前的运⾏结果如下
Case编写规范总结,欢迎纠正~
SuiteAndCases--casePath.py--caseToRun–新⽬录同级导包(__init__.py)–ssRequests(域名 端⼝
接⼝名 参数拼接,发起Request请求)--SuiteAndCases(具体case的设计,每次调⽤ssRequests)
1>Python类名⼤写,与Java不同的是类名与⽂件名不必须⼀致
2>类名格式必须为unittest.TestCase,如class SendSmsCode(unittest.TestCase)
3>SuiteAndCases所有的⽅法名(⼀个⽅法就是⼀个case)都必须以test开头
4.数据库查询结果字段顺序与输⼊的字段顺序不⼀致
# findResult = str(json.dumps(findResult, ensure_ascii=False))注释掉了
数组变成了字符串,⽆法通过下标取值
case执⾏顺序test1,test2,
解决本地不⽀持读取redis操作,在ssOperations.Parent.userOpers.py增加如下代码,连接跳板机,连
接redis,根据key查value

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。