上周的文章已经教会大家如何搭建自己的mock proxy,那么今天我们就一起看下这个工具如何应用到项目中吧~!
介绍背景
由于商城上线钱回归成本高,并且偏重于业务所以需要前端自动化支持,在这个前提下开始在前段试试自动化,试试过程中遇到商城订单变化导致case失败的问题,所以引入了MockSever的概念,所以其他同学类似这种问题,这个解决方案可行哦。
具体使用
自动化目录结构
上一篇文章已经介绍了MockServer的基本目录,将对应的文件放置到自动化项目中即可:
MockServer中data目录下的所有文件->UI自动化Data目录
MockServer中mockServer目录->UI自动化src目录
MockServer中utils目录->UI自动化src目录下
以上操作完毕后就完成了应用MockServer的大部分工作,剩下的工作就是将Proxy运行起来进行调试,说的简单两者之间的调试也除了些小插曲,听我一一道来。
问题总结
并行工作的问题
MockServer实际上是一个工具它的运行独立于自动化运行,换句话说Proxy的启动要在UI自动化之前,这就出现了这两个工具要并行启动。
解决方案(一)
使用Python multiprocess模块进行多进程启动,创建两个进程一个进程负责一个工具启动,想象很丰满现实很骨感呀,安装的时候Pycharm 出现了报错:
暂时没有解决,有知道原因的小伙伴可以留言,互相学习。
这个解决方案就以失败告终。
解决方案(二)
通过组内分享得知Python OS库可以直接调用python文件进行启动,这可是一根救命稻草,开始尝试使用OS库:
dir = os.path.dirname(os.getcwd()) + "\\Mall_UIAutomator\\src\\mockServer"
filename = os.path.join(dir,"mock_init.py")
os.system("python %s"%filename)
迫不及待的点下了运行按钮,结果还是Proxy可以运行起来,但是这个是一个常驻服务,后面的自动化代码被阻塞了,未达到预期效果:
一直处于监控状态,失败告终
解决方案(二)改进
一番挣扎后,在网上搜索资料找大神沟通,最后对方案二进行改进:
dir = os.path.dirname(os.getcwd()) + "\\Mall_UIAutomator\\src\\mockServer"
filename = os.path.join(dir,"mock_init.py")
os.system("start /b python %s"%filename)
前后对比细心的同学可以发现改进的代码中增加了“start /b” 查了下,这个是让程序在cmd下后台运行,好神奇,感兴趣的小伙伴也可以留言,要不要查个究竟。
结束语
关于mockSever的全部文章已经全部分享完毕,让我们回顾下:
《测试利器之Mock server》《我们一起搭建MockSever》
好了,今天的分享就到这里了,如果有想了解没时间了解的知识欢迎留言,苦力交给我们,你们等丰收就行。
本文分享自微信公众号 - 搜狗测试(SogouQA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。