lf知识星球banner

LuckyFrame之Python接口自动化测试

2020-05-09 07:45:00
小羽哥
原创
670

环境搭建

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上编写测试用例
登录luckyframe平台;
新建测试用例;
用例步骤编写;
添加测试用例,用例类型选择API驱动;
 


编写用例步骤,具体参数如下:

 
点击保存,保存用例;

用例调试:保存完用例之后,点击调试,即可运行该条用例,在页面可以看到用例解析执行过程,也可以登录测试执行机。查看日志了解用例解析执行情况;


4、小结

遇到的问题:
  • 传递参数时,不要传字典格式的{“state”:”00”,”code”:”0000”},在命令行获取参数的时候,key和value两边的引号会丢失,变成{state:00,code:0000},后续对这种格式的数据做处理会报错,目前从返回的json格式的字符串中获取某一个字段的值还没有想到合适的方法,需要再研究一下;(我用的Python版本是3.8,不知道是不是Python版本的问题);
  • 如需要引入自己已经写好的其他的.py文件,如一些公共方法等,可以将需要引入的文件和你的文件放在同一目录下,直接import即可;(亲测可用)
  • python也可以通过telnet的方法调用dubbo接口,本地可以调用成功,在luckyframe上由于环境不通,调不通连接超时,理论上是可行的;


总之,python可以实现很多的自动化测试,简单方便,容易上手,非常适合用来做自动化测试,和luckyframe可以完美的适配,高效执行自动化测试任务。






文章原创申明
  • 本站文章以及相关内容除注明 转贴外,均为本站 原创翻译

  • 如果本站转载的文章涉嫌侵犯了您的权益,请在评论区留言或是邮件联系管理员及时删除 【admin@luckyframe.cn】

发表评论
评论通过审核后显示。
付费知识圈