Python写自动化之以不同优先级起动进程

Python写自动化之以不同优先级启动进程

在windows上的进程,可以设置优先级,如下图

Python写自动化之以不同优先级起动进程

那么,如果我们在自动化测试过程中,需要设置进程的优先级,如何来做呢?

下面使用win32相关的接口实现此功能,代码如下:

# 获取用户句柄
        hToken = win32security.OpenProcessToken(win32api.GetCurrentProcess(), win32con.TOKEN_DUPLICATE | win32con.TOKEN_ADJUST_DEFAULT\
                                            |win32con.TOKEN_QUERY | win32con.TOKEN_ASSIGN_PRIMARY)
        hNewToken = hToken
        authority = 0x0002000
        if securityLevel != "":
            authority = 0x0002000
        if securityLevel.lower() == "low":
            authority = 0x0001000
            hNewToken = win32security.DuplicateTokenEx(hToken, win32security.SecurityImpersonation, 0, win32security.TokenPrimary, None)
        # 构建相应级别的sid
        sid = win32security.SID()
        sid.Initialize((0, 0, 0, 0, 0, 16), 1)
        sid.SetSubAuthority(0, authority)

        # 将sid设置到用户句柄
        win32security.SetTokenInformation(hNewToken, win32security.TokenIntegrityLevel,(sid, win32security.SE_GROUP_INTEGRITY))

        commandline = procPath + " " + param

        # 启动程序
        si = win32process.STARTUPINFO()
        win32process.CreateProcessAsUser(hNewToken, None, commandline, None, None, False, 0, None, None, si)
这样,我们就可以使用不同优先级启动了相应的进程~·~


转载请注明:http://blog.csdn.net/sogouauto

探索测试奥义,交流测试技术,欢迎关注“搜狗测试”