我们一起使用MockServer

2020/06/01 11:38
阅读数 1.2K

上周的文章已经教会大家如何搭建自己的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

我们一起学Mock》

我们一起搭建MockSever
好了,今天的分享就到这里了,如果有想了解没时间了解的知识欢迎留言,苦力交给我们,你们等丰收就行。

欢迎添加我们的搜狗测试微信号,与我们一起聊聊测试

本文分享自微信公众号 - 搜狗测试(SogouQA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部