插入和更新的接口,返回的数据格式也是固定的吧? 例如 code、msg 等
可能因为这三个主题的分享内容我都有接触过吧, 感觉里面遇到的问题、思路、解决方法还是挺好理解的。 不过只看 PPT 会比现场听到的信息少很多。
至于实际演示,这个涉及到一个是场地环境限制(不一定能接触到对应公司的内网),另一个也是机密信息,不一定方便透露。分享的目的,还是把新的思路、方法,以及取得的效果分享给大家。像我就从其中得到不少启发。
至于开源吧,这么庞大的系统一来脱敏、公司政策之类的不允许,二来那么多代码开源出来,不一定能起到多大的参考价值,毕竟不是所有团队都适合搭建和维护这么大的系统。
看我上面的截图
我的理解是: 同样的参数,先后发两次请求,并对比两次的返回值,并生成下图的校验文件,里面记录了每个字段是否需要对比(第一行的 1 和 0); 以后测试同一个接口时,把返回值和校验文件进行对比, 1 的就必须和文件保存的值完全一致, 0 的就可以不一致(即跳过)
suite = unittest.TestCase()
你是想定义 unittest.TestSuite() 吧?
这两个应该是 bug ,我有空的时候修复一下
https://testerhome.com/topics/16669
之前用 Python 实现过类似的一个方案,可以参考一下
具体执行 selenium 的方法,可以从 coreservice 方法开始跟踪,最后是由 process.py 里的 main 方法执行单条用例的
你看下 coreservice.py 文件的代码,其实是一个轮询,如果发现有待执行状态的用例或者用例集,就会开始执行;而界面上操作的 update,就是把用例集更新为待执行的状态。
昨天听了这次分享,说说我的理解:
扩展一下思路,如果接口文档足够完整,可以直接按接口文档的返回值列表去生成这个黑白名单列表。
这两个目录为啥会设置为一样? 前一个是报告的源文件,后一个是生成的报告文件, 你设置为同一个目录会不会被覆盖?
按 allure 的结构,应该源文件是放在 results 目录, 生成的报告是放在 reports 目录,这样会比较清晰
执行记录:
具体是哪个模块找不到呢? 最好把错误日志贴上来吧,这样才好分析和定位问题。
看下日志打印的具体目录是否一致, 我怀疑是 ${WORKSPACE}/allure-results 这里转换有问题
这里的执行类似是指属于 web 的用例,还是属于 android 的用例。 因为对应具体的用例类型是不一样的(内部应用的驱动不一样,一个是 selenium ,一个是 uiautomator2 ),所以限制了不能混在同一个用例集里执行。
建议可以分开两个用例集,一个是 web 相关的用例,一个是 android 相关的用例。
确认一下对应的目录是不是有生成对应的报告文件吧,脚本生成的数据文件 和 allure 生成的报告
你这两个地址对不上,所以 allure 找不到你的报告文件
你可以改下你的脚本,或者改下 Jenkins 里 allure report 的 results path ,使两边对上:
.bat 是 Windows 下的命令文件格式,Mac 下应该是写成 .sh 格式,可以搜索一下相关使用方法
按你的需求,步骤差不多的,稍微改一点格式就可以了
赞👍
看下你的邮件相关配置是否正确? 账号密码,SMTP 服务器地址,端口等等
我现在没有做这种处理。
思路应该是封装一个从数据库读取数据的方法,然后把获取到的数据和页面上需要的数据进行断言对比就可以了。
你的标题不够完美
不是有类似的工具吗, cypress
64 楼这种方式是把调用 selenium server 的驱动改为本地驱动了。
如果你是在本地执行用例的,可以使用这种修改方式; 如果你是想用 selenium server(即通过 jar 包启动的方式), 就要看下面这部分了:
你搜一下 linux 下如何切换 py 和 pip 版本,然后把对应命令加到 dockerfile 里就行了
我还没有采用 POM 的模式,其实也可以做个增强,增加一个自定义对象的功能,把这种使用很多次的元素作为对象管理起来。
另一方面,如果你某些步骤是被多个用例使用到的,就有必要抽出来作为公共方法。