学习推荐
Web
功能测试:Java+selenium3 web自动化测试实战
性能测试:看慕测官方的视频,这里会用就行,不用学太多
自己根据视频写的:Web自动测试常用代码(Java版)
Web没啥难的,主要拼手速,其次看你定位元素准不准,多从刷题总结经验
开发者
Java:巩固Java基础
开发者就是考Java,多做题就没问题,遇到不会的知识点可以看看视频,然后再做题,自己多总结
备赛
Web
做题的顺序一般是先性能测试,再功能测试。因为性能测试比较简单,先拿满分,再做功能测试
性能测试里的data.csv里面的逗号要和你定义的逗号分开,区分中英文的,默认是英文
可以自己根据需要的参数,定义参然后传入变量
由于有的网页元素,用鼠标右键点击检查,它会自动消失,可以用键盘Shift+Ctrl+c来找到这个元素
功能测试的时候不要挂梯子,别问我怎么知道的/(ㄒoㄒ)/~~
有多个类名组合成的类名,可以试试其中的一个,有可能是唯一标识的,i-select就是唯一的类名
同上
同上
开发者
静态内部类可以直接通过类名生成对象
非静态内部类的对象 A.B b = new A().new B();
枚举类可以直接在外部调用
用ctrl+o查看类里面的结构,方法、内部类......
BJTree<Integer,Integer>.ExternalNode e1 = new BJTree<Integer,Integer>().new ExternalNode(1, 1,1);左右两边泛型类型都要写
List<BJTree<Integer, Integer>.Node> a = new ArrayList<>();
ArrayList<BJTree<Integer, Integer>.Node> a = new ArrayList<>();
反射:方法
Class c1 = 对象.getClass();
Mehthod m1 = c1.getDeclaredMethod(对象,方法参数.Class...);
m1.setAccessible(true);//爆破
m1.invoke(对象,实参.....);
反射:成员变量
Class c2 = 对象.getClass();
Field f1 = c2.getDeclaredField(“方法名”);
f1.setAccessible(true);//报错
f1.set(对象,实参......);//设置
f1.get(对象);//取值
使用反射调用类的私有内部类的私有方法
函数式编程
预赛
Web
由于自己的chrome的版本导致过低,导致做第一道题时阅读书的网页打不开,然后就没写其中一段代码,下面是改变chrome的版本的方法:
如何下载旧版的Chrome
chromedriver安装教程(windows版)
最详细的教程,教你如何彻底关闭Chrome浏览器自动更新 (同学分享的,但我没用到,下面是我关闭自动更新的方法)
一文搞定web自动化环境常见问题(有关闭自动更新的方法)
chromedriver各个版本 (科学上网)
再就是性能测试,打开jmeter只登录了,然后没下载,导致一直没有分数(真的会疯),最后20分钟才发现问题,然后成功交上了/(ㄒoㄒ)/~~
开发者
控制台输出错误也是没法提交的,如果提交之后运行代码爆红,可以点击clean键
省赛
Web省赛
真给恶心坏了,跑哪个网站哪个网站崩
开发者省赛
一切还挺顺利的吧,然后这是自己做的覆盖率,还得是开发者,web太拉了
分数是由覆盖率+变异得分组成的,我这次的覆盖率比较高但是我没怎么写变异,变异就是有返回值的写assertXxx()函数,可以先用输出打印结果,然后再进行断言,这样提高自己的效率。这里推荐一个插件,pitest可以查看的自己变异得分,虽然我没怎么用(doge)
国赛
不出意外的话就是web没进国赛,而开发者进国赛了。国赛是真的有难度的,最后只交上一道题,好多人第二题都提交失败,我也是(呜呜.....),但是给官方发邮箱了,统一给大家看,希望有个好结果吧。
总结
这一路走来,真的学到了很多知识,最让自己收益就是学到了很多Java的知识。感谢主办方和老师以及和我一起打比赛的同学,最后贴几张去旅游的照片吧(我不是来打比赛的哈哈哈),上海真的太美啦......