颠覆你的Python实践软件测试软件测试职业探索

使用JavaScript或者jQuery写一些简单的自动化脚本

2017-10-19  本文已影响1241人  亭子青年

写在前面的话

我还是那个不怎么会带娃的测试
很多时候我们希望在做手工测试的时候,可能需要一些自动化来帮助我们测试,实现半自动化的测试,比如,常用的登录模块,我希望可以自动化起来,实现一打开登录页面,就可以自动的执行登录操作,并成功的进入项目主页面中。那么我们可以使用js这样的语言来写,为什么不用自己熟悉的py selenium来做,因为每次执行脚本的时候需要打开ide或者输入脚本来运行,感觉很麻烦,这里提供一个思路(这个思路来自于上周周末的一个关于自动化测试的线下分享活动)

jq的基础

jq定位element: $("#kw")
jq输入text:$("#kw").val("selenium")
jq触发click: $("#su").click()
jq事件处理函数:$("#su").click(function(){你的代码}),当id为su的这个对象进行点击操作的时候会触发click事件,进而执行function的代码
js匿名函数的自动执行-第一个括号里面放匿名函数,后面一个括号表示执行第一个括号里面的匿名函数:(function(){})()
js在浏览器标签中的执行:Javascript:代码
js的browser对象-location对象实现页面的跳转(当前页面):window.location.href="http://www.jb51.net";
js的browser对象-新建窗口打开指定的url : window.open("http://www.jb51.net");

让我们做个简单的自动化测试

有的时候我们可能需要自动化来帮助我们执行功能测试,我们可以做一些简单的自动化的脚本,这里提供一个方法,也是一个比较好的思路。使用js/jquery写一些自动化代码放到浏览器的收藏栏目,每次使用的时候,点击一下你收藏的这个标签就可以了。

# 代码:利用百度首页做案列
$(function(){
    $("#kw").val("selenium")
    $("#su").click()
})

# 将上面的代码加入到书签中,书签名字自定义,书签网址中放入下面的js代码
javascript:$(function(){$("#kw").val("selenium");$("#su").click();})

运行看效果

  1. 首先打开百度页面
  2. 然后在该页面打开刚才的标签,就可以看到效果啦

javascript模拟enter键盘的按键操作

jq触发某个指定键盘按键的keydown操作?-来自我们可爱的同事的帮助,我表示我看不懂(毕竟我还是个薄弱的测试,哈哈哈),只是做一个记录,之后需要的时候可以研究一下,因为现在网络上的资源也不是有很多。

function fireKeyEvent(el, evtType, keyCode) {
        var doc = el.ownerDocument,
            win = doc.defaultView || doc.parentWindow,
            evtObj;
        if (doc.createEvent) {
            if (win.KeyEvent) {
                evtObj = doc.createEvent('KeyEvents');
                evtObj.initKeyEvent(evtType, true, true, win, false, false, false, false, keyCode, 0);
            }
            else {
                evtObj = doc.createEvent('UIEvents');
                Object.defineProperty(evtObj, 'keyCode', {
                    get: function () { return this.keyCodeVal; }
                });
                Object.defineProperty(evtObj, 'which', {
                    get: function () { return this.keyCodeVal; }
                });
                evtObj.initUIEvent(evtType, true, true, win, 1);
                evtObj.keyCodeVal = keyCode;
                if (evtObj.keyCode !== keyCode) {
                    console.log("keyCode " + evtObj.keyCode + " 和 (" + evtObj.which + ") 不匹配");
                }
            }
            el.dispatchEvent(evtObj);
        }
        else if (doc.createEventObject) {
            evtObj = doc.createEventObject();
            evtObj.keyCode = keyCode;
            el.fireEvent('on' + evtType, evtObj);
        }
    }

var textbox = document.getElementById("intputTest");
fireKeyEvent2(textbox, "keydown", "13");

写在最后的话

如果是一般的text,btn这样的控件对象,只需要执行输入,click的操作,我们可以使用js来做,但是如果遇到需要我们自动触发keydown事件的页面可以使用py来写,毕竟在模拟按键操作上比较简单。

(雨和熊掌不能兼得)

上一篇下一篇

猜你喜欢

热点阅读