LuckyFrame之Python接口自动化测试
- 2020-05-09 07:45:00
- 小羽哥 原创
- 7124
环境搭建
1、安装Python
官网下载Python安装包 ,网址: https://www.python.org/getit/下载完成后,双击,下一步...一步步安装
最好勾选加入环境变量,没有勾选就要手动将ptyhon.exe文件所在路径添加到环境变 量,在cmd里输入 Python -V,能看到Python版本号等信息即可。
如果你不在测试执行机上编写代码可不必装pycharm等开发工具
2、安装requests库
机器没有连到外网直接cmd输入:pip install requests;机器没有连到外网
先下载requests安装包离线安装,第三方库网址: https://pypi.org/
将下载的包解压后放到python安装目录下,位 置:python>lib>site-packages下, 然后在cmd运行命令 python setup.py install 就好 了
离线安装requests库需要其他几个依赖的库
分别下载安装certifi、urllib3、idna、chardet
安装完成检查有没有安装成功
cmd输入 python
Import requests
没有报错即可
3、pycharm编写Python测试代码
简单说明一下requests库的用法发送get请求:
一般情况:
请求地址如:url=http://www.baidu.com
result=requests.get(url),
需要传递参数直接在url后面拼接如:url=http://www.baidu.com?kw=python&su=123
特殊情况需要加请求头信息,如headers={“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36”}
result=requests.get(url,headers=headers)
发送Post请求:
url=’http://www.baidu.com’
headers={'Content-Type':'application/json;charset=UTF-8'}
data={"reqMsgId":"20200426190757","state":"00","code":"0000","msg":"交易成功"}
如果要求传参为json格式需要将dict类型转换成json格式
data=json.dunps(data)
result=requests.post(url,data=data,headers)
获取参数并返回代码实例test.py:
import requests,time,sys def get_args(name,word): result=name+’:’+word print(result) return result if __name__=="__main__": name=sys.argv[1] word= sys.argv[2] get_args(name,word)特别说明
- argv函数作用:用来获取命令行参数,sys.argv[0]表示代码本身文件路径,所 以 参数从1开始;
- 函数返回值:因为luckyframe平台使用命令行来执行Python脚本,获取返回值只 能通过获取print的值来获取返回结果;
- 将写好的test.py文件上传到测试执行机的指定路径(无特殊要求)即可;
- Luckyframe上编写测试用例
新建测试用例;
用例步骤编写;
添加测试用例,用例类型选择API驱动;
编写用例步骤,具体参数如下:
点击保存,保存用例;
用例调试:保存完用例之后,点击调试,即可运行该条用例,在页面可以看到用例解析执行过程,也可以登录测试执行机。查看日志了解用例解析执行情况;
4、小结
遇到的问题:- 传递参数时,不要传字典格式的{“state”:”00”,”code”:”0000”},在命令行获取参数的时候,key和value两边的引号会丢失,变成{state:00,code:0000},后续对这种格式的数据做处理会报错,目前从返回的json格式的字符串中获取某一个字段的值还没有想到合适的方法,需要再研究一下;(我用的Python版本是3.8,不知道是不是Python版本的问题);
- 如需要引入自己已经写好的其他的.py文件,如一些公共方法等,可以将需要引入的文件和你的文件放在同一目录下,直接import即可;(亲测可用)
- python也可以通过telnet的方法调用dubbo接口,本地可以调用成功,在luckyframe上由于环境不通,调不通连接超时,理论上是可行的;
文章原创申明
本站文章以及相关内容除注明 转贴外,均为本站 原创或 翻译。
如果本站转载的文章涉嫌侵犯了您的权益,请在评论区留言或是邮件联系管理员及时删除 【admin@luckyframe.cn】
本站原创或是翻译的文章欢迎任何形式转载,但请务必 注明出处以及链接,尊重他人劳动成果,拒绝剽窃从你做起。
评论列表
Panda
2023-05-26 16:35:13
回复
调用python 不太使用 ,还不如自己搭建python框架
娜娜
2020-06-09 11:01:13
回复
文中第三步"data=json.dunps(data)",应写为“data=json.dumps(data)”,并且要import json
1/1
发表评论
文章分类
QQ官方交流群
微信公众号
付费知识圈
付费知识圈